我想知道爲什麼搜索特定的術語返回索引的所有文檔而不是包含所請求術語的文檔。查詢elasticsearch返回所有文檔
這裏的索引以及如何將它設置:射擊時
{"test": "ijskoud"}
{"test": "plaatstaal"}
{"test": "kristalfabriek"}
所以現在: (使用elasticsearch頭插件瀏覽器的界面)
{
"settings": {
"number_of_replicas": 1,
"number_of_shards": 1,
"analysis": {
"filter": {
"dutch_stemmer": {
"type": "dictionary_decompounder",
"word_list": [
"koud",
"plaat",
"staal",
"fabriek"
]
},
"snowball_nl": {
"type": "snowball",
"language": "dutch"
}
},
"analyzer": {
"dutch": {
"tokenizer": "standard",
"filter": [
"length",
"lowercase",
"asciifolding",
"dutch_stemmer",
"snowball_nl"
]
}
}
}
}
}
{
"properties": {
"test": {
"type": "string",
"fields": {
"dutch": {
"type": "string",
"analyzer": "dutch"
}
}
}
}
}
於是我加了一些文檔搜索「plaat」不知何故,人們會期望搜索將返回包含「plaatstaal」的文檔。
{
"match": {
"test": "plaat"
}
}
但是,保存我進一步搜索彈性搜索無論文本內容如何都會回退所有文檔。 有什麼我在這裏失蹤? 足夠有趣:使用GET或POST時有所不同。在使用後者時不會返回匹配,GET將返回所有文檔。
任何幫助,非常感謝。
謝謝!現在映射已經到位,您是否知道爲什麼搜索「plaat」不會返回包含「plaatstaal」的文檔。我是否必須在請求體內聲明分析器? – flipchip 2014-10-22 08:51:17
你正在使用的完整命令是什麼? – 2014-10-22 08:54:20
'curl -XGET localhost:9200/foo/_search -d'{「query」:{「match」:{「test」:「plaat」}}}' ' – flipchip 2014-10-22 09:26:31