我正在使用solr作爲企業應用程序。到目前爲止,它運作良好,因爲我使用了一個ngram字段進行搜索。它適用於部分查詢(與索引的ngram匹配)。但我的問題是,如何執行精確的查詢匹配?例如,查詢「測試1」應該與用戶使用雙引號輸入完全相同的文本。目前由於我使用了一些標記器和過濾器,所以雙引號被過濾掉,查詢"test 1", "tEst 1" or "TEST 1"
(這是因爲我使用的分析器鏈,但需要使用ngrams和部分搜索)。Solr搜索字段最佳實踐
當前我在搜索ngram查詢字段。爲了執行精確的查詢匹配,我該怎麼做?最佳做法是什麼?目前我認爲是從客戶端識別雙引號,並將查詢字段更改爲原始字段(使用out ngrams)。但我覺得應該有更好的方式來做到這一點,因爲我的問題是通用的,並且solr
是一個完整的企業級搜索引擎。
所以你的意思是,我應該從客戶端識別雙引號並根據那個改變查詢字段。我想過這個,但這不是一個solr可能已經解決它的通用問題嗎?我想我可能會重新發明輪子 – wattale
@wattale:請檢查答案我已經添加了一個選項... –
但問題是,當用戶故意用雙引號輸入查詢時,我該如何處理?在你的方法中,我們必須使用一種機制來標準化索引並查詢兩者,那麼雙引號就沒有意義。它也應該匹配區分大小寫的字段。我在edismax解析器中找到了pf字段..我正在看它:) – wattale