2011-12-28 52 views
3

我有索引文本的索引索引。 我想查詢以某個詞開始的文檔。 我沒有找到用lucene或dismax查詢解析器來做到這一點的方法。如何查找文檔是否以solr中的給定詞語開頭?

有沒有辦法做到這一點?

我想到的一個解決方案是在每行開始時用特殊標記索引字符串,即:「STARTOFTEXT」,然後查詢「STARTOFTEXT something」。 有更好的解決方案嗎?

回答

2

如何在包含第一個單詞的模式中創建一個字段?然後,當您構建文檔時,您可以抓住第一個單詞並將其與文本的其餘部分分開存儲。

+0

有沒有一種簡單的方法來做到這一點與現有的過濾器/分析儀? – davidbrai 2011-12-28 21:26:05

+1

不知道這是否容易,但您可能可以創建一個使用solr.PatternReplaceCharFilterFactory的字段,並創建一個正則表達式來刪除第一個單詞之後的所有內容。然後,只需使用copyField指令將大塊文本複製到這個新字段。但我會傾向於抓住構建索引文件的應用程序中的第一個單詞。 – 2011-12-29 00:52:36

+0

這是應用程序邏輯的一個工作,讓它把它存儲到一個新的領域。我想你打算將它作爲關鍵字。您可能對單獨的領域有很好的激勵:您可以在搜索**和/或**時使用它來實現分面,從而提升該字段。 – aitchnyu 2011-12-29 05:01:46

相關問題