繁体   English   中英

Elasticsearch搜索多个字段

[英]Elasticsearch searching multi fields

我想问您有关搜索需求的帮助或建议,因为我只是elastisearch的新手。 这是我的弹性搜索索引详细信息:

_index               _type         _score     subs_name     subs_type
substation index     substation    1          Ad Diraz      loop 33
substation index     substation    1          Al Bareh      city 66 
substation index     substation    1          Budaiya       loop 33
substation index     substation    1          Galali        city 66

现在,我想搜索subs_name和sub_type之间的任何单词:

  1. 如果我搜索diraz循环 ,它将为我提供Ad Diraz的搜索结果,循环33
  2. 如果我搜索循环迪拉兹 ,它将给我Ad Diraz的搜索结果,循环33
  3. 如果我搜索66号裸机 ,它将为我提供66号城市Al Bareh的搜索结果
  4. 如果我搜索Galali,它会给我搜索结果Galali,城市66 ,最后
  5. 如果我搜索Budaiya循环 ,它将给出Budaiya的搜索结果,循环33

我在下面尝试了elastisearch查询,但仅对搜索否有用。 4

{"from": 0, "size": max_result,
    "query": {
    "multi_match": {
          "fields": ['subs_name', 'subs_type'],
          "query": search_this_query,
           "type": "phrase_prefix"
                   }
             }
}

对于要使用什么Elasticsearch查询的任何帮助将不胜感激。 提前致谢!

如果您的两个字段均为字符串/文本类型,并且使用相同的分析器,则应对此查询使用cross_fields类型

GET /_search
{
  "query": {
    "multi_match" : {
      "query":      "diraz loop",
      "type":       "cross_fields",
      "fields":     [ "subs_name","subs_type"]
     "operator":   "and"
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM