首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch突出显示多个查询不能按预期工作

Elasticsearch突出显示多个查询不能按预期工作
EN

Stack Overflow用户
提问于 2017-06-19 03:05:44
回答 1查看 479关注 0票数 1

这里我有两个数据放在elasticsearch中

代码语言:javascript
运行
复制
PUT /a/b/1
{
   "message": "a b"
}

PUT /a/b/2
{
   "message": "b c"
}

然后,我尝试用这个查询获取数据。

代码语言:javascript
运行
复制
GET /a/b/_search
{
  "from": 0,
  "highlight": {
    "fields": {
      "message": {}
    }
  },
  "query": {
    "bool": {
      "should": [
        {
          "query_string": {
            "_name": "query_1",
            "default_operator": "AND",
            "fields": [
              "message"
            ],
            "query": "a"
          }
        },
        {
          "query_string": {
            "_name": "query_2",
            "default_operator": "AND",
            "fields": [
              "message"
            ],
            "query": "b AND c"
          }
        }
      ]
    }
  }
}

我所期望的是,elasticsearch应该在数据id 1上突出显示"a“,因为它与query_1匹配,但是不应该突出显示数据id 1中的"b”,因为每当消息包括“c”E 211时,我们就会选择"b"。

这正是我所期望的

代码语言:javascript
运行
复制
"<em>a</em> b"

我真正得到的是

代码语言:javascript
运行
复制
"<em>a</em> <em>b</em>"

我能实现我所期望的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-19 06:34:06

AFAIK,这在Elasticsearch中是不可能的。它将突出显示所有匹配的术语,而不管术语属于哪个子查询。一些接近您需要的东西是highlight_query,但也不能工作。我能想到的唯一选择是查询两次--一次用"query_1“,然后用"query_2”,然后在客户机中组合结果。但这样做当然会影响到文件的分数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44621694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档