2012-01-14 56 views
10

我試圖在Solr中設置一些基本同義詞。一個我一直在努力爲:如何使solr同義詞工作

我們,美國,美國

我的理解是,並補充說,以同義詞文件將允許用戶搜索美國,並取回含有美國或聯合文件狀態。如果用戶放入美國或美國,同上。

不幸的是,當我進行搜索時,我得到了包含所有三個單詞的項目的結果 - 它正在對同義詞進行AND操作,而不是對OR進行操作。

如果我打開調試,這確實是我看到(加上一些詞幹):

(+DisjunctionMaxQuery(((westCite:us westCite:usa westCite:unit) | (text:us text:usa text:unit) | (docketNumber:us docketNumber:usa docketNumber:unit) | ((status:us status:usa status:unit)^1.25) | (court:us court:usa court:unit) | (lexisCite:us lexisCite:usa lexisCite:unit) | ((caseNumber:us caseNumber:usa caseNumber:unit)^1.25) | ((caseName:us caseName:usa caseName:unit)^1.5))))/no_coord

我是不是做錯了什麼造成的?我的defaultOperator設置爲AND,但我希望同義詞過濾器能夠理解這一點。

回答

2

爲了更好地理解同義詞搜索,我們將一步實施的步驟的過程(我用Solr的6.5 *版本。):

第1步:

下載country-synonyms.txt文本文件,並將其放置在以下路徑:

路徑:\ solr的-6.5.1 \服務器\ solr的\ yourCore \ CONF

yourCore:芯的名稱也應相應改變

步驟2:

中添加字段類型託管架構上述相同路徑中的文件:

第3步: 在同一個文件中(託管模式)型國家添加您的字段(國籍)。

<field name="Nationality" type="country" indexed="true" stored="true"/> 

步驟4: 重啓solr的。

solr restart -p <your solr port> 

步驟5:

現在用含有國籍領域導入數據***

步驟6:

現在可通過以下案例和測試查詢:

查詢

  1. 國籍:美國
  2. 國籍:美國
  3. 國籍:美國
  4. 國籍:美國

的美國的所有上述疑問會給你同樣的結果。

注意:***僅在執行上述步驟(包括solr重新啓動)後才導入數據。它可能不適用於現有數據(更多詳細信息,請參閱:AnalyzersTokenizersTokenFilters