我是ES的新手,我在寻找确切短语匹配方面遇到了麻烦。
假设我的索引有一个名为movie_name的字段。 假设我有3个文档,具有以下值。
- movie_name = Mad Max
- movie_name = mad max
- movie_name = mad max 3d
如果我的搜索查询是Mad Max,则希望返回前两个文档,但不要返回第三个文档。
如果我使用“not_analyzed”解决方案,则只会得到文档1,但不会得到文档2。
我错过了什么?
我是ES的新手,我在寻找确切短语匹配方面遇到了麻烦。
假设我的索引有一个名为movie_name的字段。 假设我有3个文档,具有以下值。
如果我的搜索查询是Mad Max,则希望返回前两个文档,但不要返回第三个文档。
如果我使用“not_analyzed”解决方案,则只会得到文档1,但不会得到文档2。
我错过了什么?
PUT /movie { "settings":{ "index":{ "analysis":{ "analyzer":{ "keylower":{ "tokenizer":"keyword", "filter":"lowercase" } } } } }, "mappings" : { "search" : { "properties" : { "movie_name" : { "type" : "string", "analyzer":"keylower" } } } } }
{
"query": {
"match_phrase": {
"movie_name": "a"
}
}
}