确定在SOLR多值字段type2中产生命中的值

时间:2012-04-01 02:45:23

标签: apache solr lucene

另请参阅:determine which value produced a hit in SOLR multivalued field type

此问题已被提出并已于2010年1月得到解答。

使用新的Solr版本,最新的稳定版本为3.5.0,是否存在任何Solr功能来识别导致命中的多值字段。

For Ex: 
<field name="id">ID</field>
<field name="field1">Term1</field>
<field name="field1">value2</field>
<field name="field1">Term2</field>

如果我执行搜索,

qf=field1&q=Term

有没有办法可以知道值Term1和Term2导致Solr返回结果的命中?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Analyzer#getPositionIncrementGapIndexReader#getTermVectors来计算包含field1的{​​{1}}个实例。

例如,如果您有少于10个Term个实例,并且每个实例的术语少于100个,那么使用10 {100 = 1000的field1将帮助您计算包含哪个字段positionIncrementGap使用Term

请注意,您必须在编制索引时启用term vectors (with positions)才能执行此操作。

请注意这是一个黑客,虽然我可以用它进行测试,但我可能不会在任何严肃的软件中这样做。