2013-12-10 97 views
1

我在我的Java項目中使用elasticsearch,與像elasticsearch匹配/項查詢不返回精確匹配

/index/type/_mapping 
{ 
    "my_id" : "string" 
} 

文檔格式現在,假設添加my_id值 A01,A02,A01.A1, A012.AB0

對於查詢,

{ 
"query" : { 
    "term" : { 
    "my_id" : "a01" 
    } 
    } 
} 

觀察:返回的文件對於A01,A01.A1,A012.AB0

預計:我只需要A01文檔。

我查找了解決方案,發現我將不得不爲my_id字段使用自定義分析器。我不想更改我的文檔映射。 另外,我在查詢中使用了「index」:「not_analyzed」,但輸出沒有變化。

+0

是否確實包含在這個問題的所有相關信息的當前映射?我非常精確地輸入了您在本劇中提供的內容(https://www.found.no/play/gist/7890789),結果如您所料。 –

+0

我似乎找到了我提取的文檔錯誤的原因。 ,對於A01查詢,我得到了A01,A01.01,A01.A01等文件,當我替換'。'時。 '_'my_id,我只有A01。 這對我有用。 –

+0

我認爲'。'作爲通配符來匹配後來發生的任何事情。雖然沒有找到任何東西。 –

回答

0

是的,你可以使用「not_analyzed」分析,但要儘量使用期限過濾器,而不是長期的查詢 同時檢查文件