solr - 如何过滤 Solr 中多值字段返回的值

标签 solr solr4

我有一个文档,其中包含一个名为 uuid 的字段。该字段是一个列表(多值),每个文档最多可以包含 100k 个值。

例如,我想搜索匹配以“5ff6115e”开头的 uuid 的文档。我已经可以通过使用 q=uuids:5ff6115e* 成功地做到这一点:

http://localhost:8983/solr/test1/select?q=uuids%3A5ff6115e *&rows=1&fl=uuids&wt=json&indent=true

但是,生成的文档为我带来了该字段的所有 100k 值。

我想要的不仅是过滤 uuids 字段以这个值开头的文档,还要过滤返回的字段值,这样我只会在答案中收到特定的值。

怎么做?

最佳答案

使用突出显示。 @Jokin 首先提到它,我觉得这是最好的答案,无需破解 Solr。尝试使用 PostingsHighlighter 或 FastVectorHighlighter,而不是默认/标准荧光笔。不幸的是,他们都在内部对该字段中的所有 UIDS 执行通配符查询。 FVH 有机会在内部对此进行更明智的处理,但并未以这种方式实现。

注意:如果在范围内编写一些 Java 以添加到 Solr,理想的答案是添加术语向量(只是术语向量中的术语数据,没有偏移量/位置),然后编写一个“DocTransformer "获取词向量词;寻找前缀,然后迭代具有该前缀的那些。相当快。

关于solr - 如何过滤 Solr 中多值字段返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535197/

相关文章:

Solr:查询日期字段和当前日期的运行时分面计算

eclipse - tomcat 服务器已启动但本地主机为 :8080 is not up

search - Solr 相关性和提升最佳方法

solr - 使用 pysolr 连接到 solr 云集合

elasticsearch - 如何从 elasticsearch 结果中排除大量 id?

java - solr 1.4.0 和 4.6.0 之间的性能问题

Solr - 使用属性作为键/值对对产品进行索引

java - Zookeeper Ensemble 不响应客户端?

mysql - 如何通过对solr中的天数进行分组来获取列的总和

Solr luceneMatchVersion 语法