我有一个由字符串数组填充的多值字段。现在,我想查找所有具有i的文档。 e。 foo
作为i。 e。此字段中的第二个(!)字符串。这可能吗?
如果不是,您对实现此目标的建议是什么?
最佳答案
对于Solr,可以使用UpdateRequestProcessor复制和修改字段以添加位置前缀。因此,您将得到2_91或类似的结果。您可以为此使用StatelessScriptURP。
另外,您可以将此信息作为多个字段发送,并具有动态字段定义以映射它们。
基本上,对于Solr和ES而言,底层的Lucene都将多值字符串存储为一个长字符串,并且在第一个值的最后一个标记和第二个值的第一个标记之间具有较大的标记偏移量。因此,绝对职位需要某种技巧。在查询过程中,运行时黑客(例如其他答案中的ElasticSearch示例)非常昂贵。内容修改骇客(例如本例中的URP)会因磁盘空间增加或架构更复杂而变得昂贵。
关于solr - 查询多值字段中的特定索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102853/