2013-09-26 43 views
1

我遵循Couchbase - ElasticSearch教程集成,我正在用啤酒樣本桶進行測試。Couchbase - Elasticsearch搜索問題

我有一個問題。

我可以做一個查詢,如:

{ 
    "query": { 
     "match": { 
      "doc.name": "IPA" 
     } 
    } 
} 

,但如果我搜索這樣的:

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "match_all": { } 
      }, 
      "filter": { 
       "term": { "doc.name": "IPA" } 
      } 
     } 
    } 
} 

我沒有獲得任何結果。

與其他字符串字段我沒有問題,例如,「類型」:「啤酒」

{ 
    "query": { 
     "match": { 
      "doc.type": "beer" 
     } 
    } 
} 

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "match_all": { } 
      }, 
      "filter": { 
       "term": { "doc.name": "beer" } 
      } 
     } 
    } 
} 

我不知道爲什麼。

在此先感謝

回答

1

這是因爲你的分析儀。對於字符串,默認分析儀會降低輸入。所以,IPA被索引爲ipa。

術語篩選器不會分析您的輸入,因此您搜索IPA並在索引中找到ipa - > IPA!= ipa,從而導致文檔不匹配。

另一方面,匹配查詢使用爲該字段設置的分析器分析您的輸入,因此,您的輸入是小寫字母並且您搜索ipa。

我希望它是有道理的。

+0

謝謝DeH!那就對了! –

+0

不客氣! – DeH