当前位置: 首页 > news >正文

Elasticsearch 在bool查询中使用分词器

1. 创建索引 test setting和mappings

设置了自定义分词映射规则。

PUT /test
{"settings": {"analysis": {"filter": {"my_synonym": {"type": "synonym","updateable": true,"synonyms_path": "dic/synonyms.txt"}},"analyzer": {"my_analyzer": {"tokenizer": "ik_max_word","filter": ["my_synonym"]}}}},"mappings": {"properties": {"name": {"type": "text","analyzer": "ik_max_word"}}}
}

dic/synonyms.txt文件中的映射词如下:

张三,李四 => 王五
电脑 => 计算机
苹果 => 苹果电脑

2. 向test索引中写入数据

PUT test/_doc/1
{"name":"电脑"
}PUT test/_doc/2
{"name":"苹果"
}PUT test/_doc/3
{"name":"王五"
}

3. 查询

使用bool查询数据。

#查询语句
GET test/_search/
{"query": {"bool": {"must": [{"match":{"name":{"query":"张三,李四","analyzer":"my_analyzer"}}}]}}
}#查询结果
{"took" : 831,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 3.257093,"hits" : [{"_index" : "test","_type" : "_doc","_id" : "3","_score" : 3.257093,"_source" : {"name" : "王五"}}]}
}

以上查询中query中指定查询“张三,李四”,同时由于指定了自定义分词映射规则,会自动将“张三,李四”映射为“王五”进行查询,结果所以会查询出“王五”。

http://www.lryc.cn/news/173232.html

相关文章:

  • 在Python中创建相关系数矩阵的6种方法
  • 物联网、工业大数据平台 TDengine 与苍穹地理信息平台完成兼容互认证
  • this.$nextTick()的使用场景
  • idea(第一次)启动项目,端口变成了8080
  • brpc 学习(一)M1 MacOS构建方法
  • Python 与 Qt c++ 程序共享内存,传递图片
  • 【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 问题分析、数学模型及代码实现
  • 2024字节跳动校招面试真题汇总及其解答(五)
  • 如何撤销某个已经git add的文件以及如何撤销所有git add提交的文件?
  • JVM高级性能调试
  • APK的反编译,签名,对齐
  • Django(20):信号机制
  • 31.链表练习题(2)(王道2023数据结构2.3.7节16-25题)
  • 排序算法之归并排序
  • macOS 下 Termius 中文显示为乱码
  • Apifox接口测试工具详细解析
  • Python 实现 PDF 文件转换为图片 / PaddleOCR
  • 【Java基础夯实】变量声明选择包装类还是基本类型有哪些讲究?
  • 获取唯一的短邀请码
  • 大词表语言模型在续写任务上的一个问题及对策
  • Spark SQL【电商购买数据分析】
  • Google拟放弃博通自行研发AI芯片 | 百能云芯
  • 一百八十二、大数据离线数仓——离线数仓从Kafka采集、最终把结果数据同步到ClickHouse的完整数仓流程(待续)
  • 掌动智能:卓越性能的API接口测试工具
  • Flutter 基本概念
  • PHP包含读文件写文件
  • uniapp——实现base64格式二维码图片生成+保存二维码图片——基础积累
  • 【二叉树魔法:链式结构与递归的纠缠】
  • FL Studio21.0.3最新中文版下载安装详解
  • 【算法与数据结构】JavaScript实现十大排序算法(一)