solr - 查询多值字段中的特定索引值

标签 solr lucene elasticsearch

我有一个由字符串数组填充的多值字段。现在,我想查找所有具有i的文档。 e。 foo作为i。 e。此字段中的第二个(!)字符串。这可能吗?

如果不是,您对实现此目标的建议是什么?

最佳答案

对于Solr,可以使用UpdateRequestProcessor复制和修改字段以添加位置前缀。因此,您将得到2_91或类似的结果。您可以为此使用StatelessScriptURP

另外,您可以将此信息作为多个字段发送,并具有动态字段定义以映射它们。

基本上,对于Solr和ES而言,底层的Lucene都将多值字符串存储为一个长字符串,并且在第一个值的最后一个标记和第二个值的第一个标记之间具有较大的标记偏移量。因此,绝对职位需要某种技巧。在查询过程中,运行时黑客(例如其他答案中的ElasticSearch示例)非常昂贵。内容修改骇客(例如本例中的URP)会因磁盘空间增加或架构更复杂而变得昂贵。

关于solr - 查询多值字段中的特定索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102853/

相关文章:

mysql - SOLR 数据导入错误 "Unable to Execute Query"

solr - Solr 4.0中的mergeFactor用法

apache - 如何在 Solr 4.6 中搜索 P_NAME(按字段名称并获取所有已编入索引的字段)

java - 在 Lucene 中,我可以搜索一个索引但使用另一个索引中的 IDF 吗?

java - Lucene 文档对象复制其未更改的字段

用于 ElasticSearch 的 Java HTTP 客户端

java - Solrcloud性能问题

lucene - 使用 Elasticsearch 进行分层分面

node.js - 如何使用node.js lib更新Elasticsearch中的项目?

json - Elasticsearch function_score与 bool