弹性搜索无法为1个字段的搜索提供正确的结果

时间:2018-08-21 05:46:25

标签: elasticsearch search indexing

我有3条带有名称字段的记录条目,如下所示
1)苹果菠萝
2)苹果松
3)苹果

我正在进行以下查询

{
 "type": [
   "Forest::Meditaranian::Fruits"
 ],
 "query": {
   "bool": {
     "must": [{
       "query_string": {
         "analyze_wildcard": true,
         "default_operator": "and",
         "fields": ["name"],
         "lenient": true,
         "minimum_should_match": 1,
         "query": "apple-pi*"
       }
     }],
     "must_not": [{
       "query_string": {
         "analyze_wildcard": true,
         "default_operator": "and",
         "fields": ["status"],
         "lenient": true,
         "minimum_should_match": 1,
         "query": "deactivated"
       }
     }]
   }
 },
 "limit": 50,
 "offset": 0,
 "all_projects": false
}

这给了我零点击。
案例:
1)"fields": ["name","xyzdummyentryhere"]-> 2次点击
2)"fields": ["name"]-> 0次点击

如果我搜索名称apple- *
3)"fields": ["name"]-> 2次点击
如果我搜索名称apple-pi *
0次点击
我应该如何构成查询,以便我获得2个匹配的apple-pi *?

使用了分析器

'raw_lower':{'type':'string',                                       'analyzer':'keyword_lowercase'}

0 个答案:

没有答案