使用弹性搜索查询字符串匹配多个字段

甘加达尔

我是弹性搜索的新手,我有以下格式的数据:

{
  "person_name" : "Abraham Benjamin deVilliers",
  "name": "Abraham",
  "office":{
     "name":"my_office"
  }
},
{
  "person_name" : "John Bradshaw",
  "name": "john",
  "office": {
     "name":"Abraham deVilliers"
  }
},
{
  "person_name" : "John Bradshaw",
  "name": "Abraham deVilliers",
  "office": {
     "name":"blabla"
  }
},
{
  "person_name" : "John Bradshaw",
  "name": "Abraham",
  "office": {
     "name":"deVilliers"
  }
},
{
  "person_name" : "Abraham",
  "name": "deVilliers",
  "office": {
     "name":"blabla"
  }
}

我正在搜索查询字符串有三个字段匹配person_namename并且office.name,它应该通过检查用户输入的查询字段如下返回响应:

如果输入的查询字符串为Abraham deVilliers,则它应返回具有Abraham作为deVilliersperson_nameornameoffice.nameas的一部分的用户,如下所示:

   {
      "person_name" : "Abraham Benjamin deVilliers",
      "name": "Abraham",
      "office":{
         "name":"my_office"
      }
    },
    {
      "person_name" : "John Bradshaw",
      "name": "john",
      "office": {
         "name":"Abraham deVilliers"
      }
    },
    {
      "person_name" : "John Bradshaw",
      "name": "Abraham deVilliers",
      "office": {
         "name":"blabla"
      }
    }

我已经尝试过query_string弹性搜索的搜索查询,如下所示:

{
    "query": {
        "query_string":
          {   "fields": ["person_name", "name", "office.name"],
              "query": "Abraham AND deVilliers"
          }
    }
}

搜索查询返回预期的结果,但它也返回响应匹配first_name: Abraham来自namelast_name: deVilliersoffice.name,我不想要的。

我想从query_string查询返回中排除以下配置文件

    {
      "person_name" : "John Bradshaw",
      "name": "Abraham",
      "office": {
         "name":"deVilliers"
      }
    },
    {
      "person_name" : "Abraham",
      "name": "deVilliers",
      "office": {
         "name":"blabla"
      }
    }
Aclokay

这是一项用于多匹配查询的工作,请尝试如下操作:

GET <index_name>/_search?explain=true
{
  "query": {
    "multi_match" : {
      "query":      "Abraham deVilliers",
      "type":       "best_fields",
      "fields":     [ "person_name", "name", "office.name" ],
      "operator":"and"
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章