我對ElasticSearch相當陌生,對停用詞有疑問。我有一個包含美國州名的索引....例如:紐約州/紐約州,加利福尼亞州/加利福尼亞州,俄勒岡州/俄勒岡州。我相信俄勒岡州的縮寫'OR'是一個停用詞,所以當我將狀態數據插入索引時,我無法搜索'OR'。有沒有一種方法可以爲此設置自定義停用詞或者我是否做錯了什麼?有沒有辦法「逃避」ElasticSearch停用詞?
這裏是我我建立索引: curl -XPUT http://localhost:9200/test/state/1 -d '{"stateName": ["California","CA"]}' curl -XPUT http://localhost:9200/test/state/2 -d '{"stateName": ["New York","NY"]}' curl -XPUT http://localhost:9200/test/state/3 -d '{"stateName": ["Oregon","OR"]}'
一種 'NY',搜索工作正常。例如:
curl -XGET 'http://localhost:9200/test/state/_search?pretty=1' -d ' { "query" : { "match" : { "stateName" : "NY" } } }'
但對於 '或' 搜索,返回零次命中:
curl -XGET 'http://localhost:9200/test/state/_search?pretty=1' -d ' { "query" : { "match" : { "stateName" : "OR" } } }'
我相信這個搜索到任何結果,因爲OR是停用詞,但我不知道如何解決這個問題。感謝您的幫助。
該答案有用嗎? – javanna
謝謝Javanna!良好的信息。 –