返回elasticsearch中字段的部分值

uidvcgyl  于 2023-04-20  发布在  ElasticSearch
关注(0)|答案(1)|浏览(104)

在Elasticsearch中有没有好的方法来实现这一点:我有一个字段“描述”,这是很长的,当我搜索一个词存在于这个描述,我想ES返回这样的东西:“...在搜索词之前搜索词在搜索世界之后...”而不是所有字段描述
示例:描述包含:“这是一个非常美丽的一天去散步”如果我搜索一天,我想ES返回:“美好的一天即将来临”

bd1hkmkf

bd1hkmkf1#

这不是你想要的,但可以帮助你找到解决方案。
Elasticsearch Highlight
下面是一个例子:

PUT test_highligh/_doc/1
{
  "description": "It is a very beautiful day to go for a walk"
}

GET /test_highligh/_search
{
  "query": {
    "match": {
      "description": "day"
    }
  },
  "highlight": {
    "fields": {
      "description": {
        "pre_tags": ["..."],
        "post_tags": ["..."],
         "fragment_size" : 3
      }
    }
  }
}

fragment_size突出显示的片段的大小,以字符为单位。默认值为100。
输出:

"hits": [
  {
    "_index": "test_highligh",
    "_id": "1",
    "_score": 0.2876821,
    "_source": {
      "description": "It is a very beautiful day to go for a walk"
    },
    "highlight": {
      "description": [
        "beautiful ...day..."
      ]
    }
  }
]

相关问题