elasticsearch - 如何突出显示 Elasticsearch 中与字符串匹配的所有值
问题描述
下面是示例查询以突出显示所有字段
resp = es.search(index="test", body={"from": 0, "size": 1000, "query": {"bool": {"must": {"query_string": {"query": "Pencil" + '*', "fields": ["name^24"]}}}}, "highlight": { "fields": { "*": {}}}})
我终于得到如下输出
{'highlight': {'name': ['<em>Pencil</em>']}}
我在标题,描述的很多地方都有“铅笔”。有没有办法在检索时在所有地方都“铅笔”。
基本上铅笔在哪里来,我需要确定它,它有点突出
解决方案
因为您已将匹配字段指定为name
ie,所以"fields": ["name"]
您的突出显示将仅返回名称字段,如果您想在所有字段"require_field_match": false
中突出显示,请添加突出显示查询。
您的突出显示查询必须如下所示
"highlight" : {
"require_field_match": false,
"fields": {
"*" : {}
}
}
推荐阅读
- python - Python中的数组TP,TN,FP和FN
- python - 我无法使用 docker-compose 对 MySQL 和 Django App 进行 Dockerize
- spring - 会话范围 CacheManager 不能在 @Cacheable 中使用。如何解决?
- node.js - 重新安装节点和 npm 后打字稿代码库失败
- javascript - 获取 Firestore 抛出未安装警告的文档方法
- javascript - 根据您的经验,React 的最佳 UI 框架(例如 Material UI 或其他)?
- graphql - 如何将 GraphqlSchema 转换为联合模式?
- flutter - 如何实现单个 appbar 图标以在不同的标签栏上以不同的方式运行?
- javascript - Vue.js 从组件中的 App.vue 导入数组
- xml - Getting Invalid XPath Expression error while retrieving elements