2010-01-25 25 views
1

如果我有一個多值字段類型的文本,並且我在其中放置了值[cat,dog,green,blue]。有沒有一種方法可以告訴我什麼時候對狗執行一個查詢,它是在多值字段的第一個元素位置?確定哪個值在SOLR多值字段類型中產生了命中

假設:客戶端不知道被查詢字段的字段類型是什麼。 (即Solr必須提供答案,並且客戶端不能過程返回文檔以找出答案,因爲它不知道SOLR如何將查詢與結果相匹配)。

披露:我發佈到solr用戶名單,並沒有獲得牽引力,所以我現在在這裏發佈。

+1

我不明白你爲什麼要只匹配在多值字段的某個位置... – 2010-01-26 01:17:12

+0

的http://老.nabble.com /確定哪些值產生了一種多值場的類型-td27281182.html – 2010-01-26 20:27:55

+0

@Mauricio - 我不想只匹配某個位置,我想知道哪個位置匹配。 – harschware 2010-01-27 16:19:54

回答

3

目前,有Solr中沒有提供出的現成功能,它告訴你一個價值的一個多值字段的位置。

+0

(+1)這可能是真實的答案?是否可以通過查詢和索引分析器或其擴展版本作爲客戶端後處理來運行該字段?關鍵是客戶端可以產生與查詢服務器相同的結果。 – harschware 2010-01-26 22:11:45

+0

哎呀我忘了+1 – harschware 2010-01-27 16:18:32

0

Lucene API允許這樣做,但我不確定Solr是否可以開箱即用。在Lucene中,你可以使用IndexReader.termPositions(Term term)方法。

1

希望我正確理解你的問題。

如果你想獲得字段索引或價值有一個醜陋的解決方法:

你可以在值直接添加索引例如存儲「1;車」,「2;測試」等。然後使用突出顯示。在閱讀返回的字段時,只需在分號前跳過文本。

但是,如果你想查詢只有一種類型:

可避免多值的方法,並通過簡單ITEM_1其存儲爲item_i和查詢。對查詢的所有項目,無論您需要使用copyField指令在schema.xml中的類型