【发布时间】:2013-07-27 17:52:34
【问题描述】:
我是 ElasticSearch 的新手,对停用词有疑问。我有一个包含美国州名的索引……例如:纽约/纽约、加利福尼亚/加利福尼亚、俄勒冈/俄勒冈。我相信俄勒冈州的缩写,“OR”是一个停用词,所以当我将状态数据插入索引时,我无法搜索“OR”。有没有办法为此设置自定义停用词,还是我做错了什么?
这是我构建索引的方式:
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"
}
}
}'
但是搜索“OR”,返回零命中:
curl -XGET 'http://localhost:9200/test/state/_search?pretty=1' -d '
{
"query" : {
"match" : {
"stateName" : "OR"
}
}
}'
我相信此搜索不会返回任何结果,因为 OR 是停用词,但我不知道如何解决这个问题。谢谢你的帮助。
【问题讨论】:
-
这个答案有用吗?
-
感谢贾瓦娜!很好的信息。
标签: elasticsearch