2012-04-01 27 views
0

參見:determine which value produced a hit in SOLR multivalued field type確定哪些值產生了SOLR一擊多值字段類型2

這個問題已經被問和已經回答了2010年一月

有了新的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 

有沒有一種方法可以讓我知道值起租1和詞條2,從造成的結果命中從Solr的回來?

+0

呃,獲取該字段本身的值?或者根據您的想法,獲取刻面(參見Solr刻面)可能會有所幫助。 – aitchnyu 2012-04-01 14:29:13

+0

你的用例是什麼?也許模式的改變會比這個特定問題的解決方案更有意義。 – jpountz 2012-04-01 21:59:25

回答

0

你可以嘗試的東西是玩Analyzer#getPositionIncrementGapIndexReader#getTermVectors計算哪個field1實例包含Term

例如,如果您有少於10種field1情況下,如果每個實例有不到100個詞語,然後用10 * 100 = 1000的positionIncrementGap將幫助您計算使用position % 1000哪個字段包含Term

請注意,您必須在索引時啓用term vectors (with positions)才能執行此操作。

請注意這是一種黑客行爲,儘管我可以使用它進行測試,但我可能不會在任何嚴肅的軟件中執行此操作。