2015-04-18 47 views
0

我在彈性搜索中有一個字符串字段「標題」(未分析)。一個文件的標題是「加菲貓2:兩隻小貓的尾巴(2006)」。Elasticsearch詞條查詢與冒號

當我使用下面的json進行查詢時,沒有結果返回。

{"query":{"term":{"title":"Garfield 2: A Tail Of Two Kitties (2006)"}}} 

我試圖逃跑冒號和括號,如:

{"query":{"term":{"title":"Garfield 2\\: A Tail Of Two Kitties \\(2006\\)"}}} 

仍然沒有工作。我被困在這裏。任何人都可以幫我嗎?

+1

向我們展示您的映射,我敢打賭,該字段有''索引':「否」';) – alfasin

回答

1

術語查詢不會標記或將分析器應用於搜索文本。相反,如果查找完全匹配不會工作的字符串字段默認分析/標記。

爲了讓這個更好的解釋 -

比方說有一個字符串值 - 「我在夏天:營」 當索引此其分爲令牌如下 -

"I am in summer:camp" => [ I , am , in , summer , camp ] 

因此,即使你在術語中搜索「我在夏天:營地」,它也不會起作用,因爲「我在夏天:營地」這個標記不存在於索引中。 像phrase query這樣的東西在這裏可能會更好。 或者您可以將「index」字段保留爲「not_analyzed」,以確保字符串不被標記。