参考文献:
id方案
Format: id:<namespace>:<document-type>:<key/value-pairs>:<user-specified>
http://docs.vespa.ai/documentation/content/buckets.html
http://docs.vespa.ai/documentation/content/idealstate.html它可以通过使用32 LSB的文档id格式(n /g选择)来构造用户定义的桶形逻辑中的数据。
但是,查询逻辑对于如何根据预先作出的决定将查询路由到特定的桶范围并不十分清楚。
例如,如果我可以定义压缩范围的n(一个数字),就可以将数据分割成一个时间范围(开始时间/结束时间)。所有这样标记的文档都将在同一个桶中结束(按照配置的文档数量/大小进行拆分)。
但是,如何对以这种方式索引的数据编写搜索查询呢?是否可以指示处理器选择特定的存储桶或存储桶的范围(万一分发算法可能移动了存储桶)?
发布于 2017-10-11 07:32:11
可以通过指定streaming.groupname查询属性在查询中选择一个桶。
在http请求中添加
&streaming.groupname=[group] 或者是在搜索者里
query.properties().set("streaming.groupname","[group]").如果您想要多个桶,请使用参数streaming.selection,它接受任何文档选择表达式:http://docs.vespa.ai/documentation/reference/document-select-language.html
要指定两个桶,请使用set streaming.selection (在HTTP或Searcher中)
id.group=="[group1]" and id.group=="[group2]"请参阅http://docs.vespa.ai/documentation/streaming-search.html
请注意,仅当每个查询只需要搜索一个或几个桶时,才应该使用流搜索。它避免构建反向索引,在这种特殊情况下,这种方法更便宜(仅限于)。
发布于 2017-10-11 08:03:31
&streaming.*参数在这里描述,http://docs.vespa.ai/documentation/reference/search-api-reference.html#streaming.groupname。
这仅适用于使用mode=streaming配置的文档类型,对于默认模式(即索引),您无法控制查询路由http://docs.vespa.ai/documentation/reference/services-content.html#document。
https://stackoverflow.com/questions/46681642
复制相似问题