繁体   English   中英

确定哪个值在SOLR多值字段类型中产生了命中

[英]determine which value produced a hit in SOLR multivalued field type

如果我有一个multiValued字段类型的文本,我将值[cat,dog,green,blue]放入其中。 有没有办法告诉我何时对狗的那个字段执行查询,它是否在该multiValued字段的第一个元素位置?

假设:客户端对所查询的字段的字段类型没有任何预先知识。 (即Solr必须提供答案,客户端不能对返回文档进行后处理,因为它不知道SOLR如何将查询与结果相匹配)。

披露:我发布到solr-user列表并且没有牵引力所以我现在在这里发布。

目前,Solr中没有提供开箱即用的功能,它告诉您multiValue字段中值的位置。

希望我能正确理解你的问题。

如果你想得到字段索引或值,有一个丑陋的解决方法:

您可以直接在值中添加索引,例如存储“1; car”,“2; test”等。 然后使用突出显示。 读取返回的字段时,只需跳过分号前的文本。

但是,如果您只想查询一种类型:

您可以避免使用多值方法,只需将其存储为item_i并通过item_1进行查询。 要查询所有项目,无论您需要在schema.xml中使用copyField指令

Lucene API允许这样做,但我不确定Solr是否可以开箱即用。 在Lucene中,您可以使用IndexReader.termPositions(Term term)方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM