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

Elasticsearch 自动补全 completion type

Elasticsearch 自带一种自动补全类型 completion 这种类型不在mapping文档里面有点坑。

先直接上例子。

建立 index,把我们要自动补全的字段设置为 completion 类型
或者直接设置为子类型

PUT /blogs_completion/
{"mappings": {"tech": {"properties": {"body": {"type": "completion"}}}}
}// 设置为子类型
PUT /blogs_completion/
{"mappings": {"properties": {"body": {"type": "text","fields": {"suggest":{"type":"completion"},"keyword":{"type":"keyword"}}}}}
}//填充测试用例inter开头文本,和inter 的变形单词inber等
POST _bulk/?refresh=true
{ "index" : { "_index" : "blogs_completion", "_type" : "tech" } }
{ "body": "interface test1"}
{ "index" : { "_index" : "blogs_completion", "_type" : "tech" } }
{ "body": "interf test2"}
{ "index" : { "_index" : "blogs_completion", "_type" : "tech" } }
{ "body": "inter test3"}
{ "index" : { "_index" : "blogs_completion", "_type" : "tech" } }
{ "body": "inber test"}
{ "index" : { "_index" : "blogs_completion", "_type" : "tech" } }
{ "body": "sinter test"}// 使用带模糊匹配的 completion suggester 查询POST blogs_completion/_search?pretty
{ "size": 0,"suggest": {"blog-suggest": {"prefix": "inter","completion": {"size":"5","field": "body","fuzzy" : {"fuzziness" : 2}}}}
}// 结果{"took" : 1,"timed_out" : false,"_shards" : {"total" : 5,"successful" : 5,"skipped" : 0,"failed" : 0},"hits" : {"total" : 0,"max_score" : 0.0,"hits" : [ ]},"suggest" : {"blog-suggest" : [{"text" : "inter","offset" : 0,"length" : 5,"options" : [{"text" : "inter test","_index" : "blogs_completion","_type" : "tech","_id" : "Fd_wOHABW8nrxgV2Ej6u","_score" : 3.0,"_source" : {"body" : "inter test"}},{"text" : "interf test","_index" : "blogs_completion","_type" : "tech","_id" : "FN_wOHABW8nrxgV2Ej6u","_score" : 3.0,"_source" : {"body" : "interf test"}},{"text" : "interface test","_index" : "blogs_completion","_type" : "tech","_id" : "E9_wOHABW8nrxgV2Ej6u","_score" : 3.0,"_source" : {"body" : "interface test"}},{"text" : "inber test","_index" : "blogs_completion","_type" : "tech","_id" : "HN__OHABW8nrxgV2lD4C","_score" : 2.0,"_source" : {"body" : "inber test"}}]}]}
}

概述:

Elasticsearch 自带 suggest query 的功能,作为自动补全和查询建议的工具,称为 suggester

分为四种:

  1. Term suggester
  2. Phrase Suggester
  3. Completion Suggester
  4. Context Suggester

Completion Suggester 已经可以满足我们一般的带模糊查询的前缀自动补全功能,
如果要做更复杂的自动补全,可以结合 term suggester 和 phrase suggester 和 completion,同时查询,合并结果,得到更复杂的结果

一般详细文档:

https://blog.csdn.net/wwd0501/article/details/80595201

官方详情查考

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters.html#context-suggester

相关文章:

Elasticsearch 自动补全 completion type

Elasticsearch 自带一种自动补全类型 completion 这种类型不在mapping文档里面有点坑。 先直接上例子。 建立 index,把我们要自动补全的字段设置为 completion 类型 或者直接设置为子类型 PUT /blogs_completion/ {"mappings": {"tech": {"properties…...

GB28181协议实现源码Android源码

一、GB28181规范 尽管在国标GB28181中并没有对“平台”进行明确的定义,但在规范中却多次提到“系统平台”、“管理平台”等词汇,在具体项目中、网络上的交流学习中,平台概念也是无处不在。笔者认为,GB28181平台就是视频联网系统中的上级平台、中间平台或下级平台,用于实现…...

HNU工训中心: 三人表决器及八人抢答器实验报告

工训中心的牛马实验 三人表决器: 实验目的 1) 辨识数字IC功能说明。 2) 测试数字集成门电路,掌握输出故障排除、使用注意事项。 3) 掌握逻辑函数搭建三人表决器。 2.实验资源 HBE硬件基础电路实验箱、万用表 74LS00与非门、74LS10 三个3输入与非门…...

split()用法注意事项

split()用法注意事项 这个要注意有些特殊的分割符,比如.,这个表示匹配任何字符,如果在split()中调用的话,会将任何字符都分隔开,比如: String[] split "se.lll".split("."); System…...

centos7配置静态网络常见问题归纳

系列相似配置与安装软件问题整理与归纳文章目录 安装pymysql库_pymysql库安装_张小鱼༒的博客-CSDN博客 解决pip更新的代码_pip更新代码_张小鱼༒的博客-CSDN博客 python当中的第三方wxPython库的安装解答_pip install wx_张小鱼༒的博客-CSDN博客 spark里面配置jdk后的编程…...

产品经理修炼指南【01】

最近看了点产品经理的书,觉得产品经理这个位置和程序员不太一样,程序员唯一考核的标准就是能不能完成工作任务、是否能完成工作代码,但是产品经理貌似不一样,就像我给刘曼说的,产品经理上可以接领导,下可以…...

NCRE计算机等级考试Python真题(十一)

第十一套试题1、以下选项对于import保留字描述错误的是:A.import可以用于导入函数库或者库中的函数B.可以使用from jieba import lcut 引入 jieba库C.使用import jieba as jb,引入函数库jieba,取别名jbD.使用import jieba 引入jieba库正确答案…...

cglib代理解析

工作原理 使用 <dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version></dependency>对类和接口分别进行代理 DemoService package com.fanqiechaodan.user.service;/*** author fa…...

GFD563A101 3BHE046836R0101

GFD563A101 3BHE046836R0101关于高端涂布机张力控制系统方案的介绍高端涂布机张力控制系统方案涂布机是将具有某种功效的胶&#xff0c;或者油墨类物质均匀粘连在塑料薄膜、铝箔、纺织品等表面的机械设备。本系统从放卷到收卷共采用七台变频器&#xff0c;其中收放卷采用闭环张…...

SAP 采购定价过程字段解析

下面我们针对每一个字段进行解释和用途分析 &#xff1a; 1、 步骤&#xff1a;代表了创建PO时&#xff0c;哪个条件类型放到前面&#xff0c;哪个放到后面&#xff0c;如果步骤号相同&#xff0c;那就以谁先选择出来谁就在前面。 2、 计数&#xff1a;没有任何实际意义&a…...

一篇搞懂tcp,http,socket,socket连接池之间的关系

前言 作为一名开发人员我们经常会听到HTTP协议、TCP/IP协议、UDP协议、Socket、Socket长连接、Socket连接池等字眼&#xff0c;然而它们之间的关系、区别及原理并不是所有人都能理解清楚&#xff0c;这篇文章就从网络协议基础开始到Socket连接池&#xff0c;一步一步解释他们之…...

【JavaSE】对象的比较

哈喽&#xff0c;大家好&#xff01;我是保护小周ღ&#xff0c;本期为大家带来的是Java中自定义类型&#xff08;对象&#xff09;的三种比较方式&#xff0c;equals 方法, Comparable 泛型接口, Comparator 泛型接口 。在日常编程中&#xff0c;我们常常会需要比较的问题&…...

Leetcode DAY 49~50:买卖股票的最佳时机 1 2 3 4

121. 买卖股票的最佳时机 1、贪心算法 class Solution { public:int maxProfit(vector<int>& prices) {//贪心int low INT_MAX;int res 0;for(int i 0; i < prices.size(); i) {low min(low, prices[i]); //左最小价格res max(res, prices[i] - low); //当前…...

Android Handler机制(二) Handler 实现原理

一. 前言 接上一篇文章为什么设计Handler , 我们来继续讲解一下Handler的实现原理, 俗话说一个好汉三个帮, 接下来一步一步引入各个主角,并说明它们在Handler机制中扮演的角色和作用. 二. Handler实现原理 首先我们先确定一个结论: 使用 Handler 是希望它被实例化在哪个线程&a…...

Elasticsearch教程(19) 详解mapping之keyword

Elasticsearch已升级&#xff0c;新版Elasticsearch keyword博客参考下面这篇【Elasticsearch教程8】Mapping字段类型之keyword_elasticsearch的keyword_亚瑟弹琴的博客-CSDN博客 1 前言 本文基于ES7.6&#xff0c;如果是之前版本&#xff0c;是有区别的。 ES支持的字段类型很…...

LeetCode算法复杂度分析(时间复杂度空间复杂度)

文章目录前言时间复杂度1.概述2.大O记法3.常见类型空间复杂度1.概述2.常见类型典型算法的复杂度分析1.递归算法2.哈希表前言 我们知道&#xff0c;研究算法的最终目的就是如何花更少的时间&#xff0c;如何占用更少的内存去完成相同的需求。 时间复杂度 1.概述 我们要计算算…...

Android OpenCV(七十三):吊打高斯模糊的StackBlur Android 实践

前言 OpenCV 4.7.0 2022年12月28日Release,ChangeLog中提到 Stackblur algorithm implementation. Stackblur是一种高斯模糊的快速近似,由Mario Klingemann发明。其计算耗时不会随着kernel size的增大而增加,专为大kernel size的模糊滤波场景量身定制。 使用建议:当kerne…...

4.排序算法之一:冒泡排序

排序算法稳定性假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;这些记录的相对次序保持不变&#xff0c;即在原序列中&#xff0c;r[i]r[j]&#xff0c;且r[i]在r[j]之前&#xff0c;而在排序后的序列中&#xff0c;r[…...

python自学之《21天学通Python》(16)——第19章 用Pillow库处理图片

Pillow是Python2.X时代比较流行的Python ImagingLibrary&#xff08;简称Pillow&#xff09;图像处理库的分支&#xff0c;并修复了一些bug。Pillow提供了对Python3的支持&#xff0c;为Python3解释器提供了图像处理的功能。和Pillow库一样提供了广泛的文件格式支持、高效的内部…...

发布依赖到maven仓库

maven中央仓库是一个开放的仓库&#xff0c;所以我们也可以把自己开发的jar推送到远程仓库&#xff0c;这样可以直接引入pom依赖使用我们的库。 准备工作 ● 需要一个github账号&#xff08;程序员必备&#xff09; ● 网络代理&#xff08;涉及到的网站通常没版本在国内直接访…...

s2-pro效果展示:多说话人语音合成(同一模型切换不同音色)

s2-pro效果展示&#xff1a;多说话人语音合成&#xff08;同一模型切换不同音色&#xff09; 1. 专业级语音合成效果展示 s2-pro作为Fish Audio开源的专业级语音合成模型&#xff0c;其最惊艳的能力在于同一模型支持多种音色切换。通过上传不同的参考音频&#xff0c;模型可以…...

HFSS建模进阶:如何高效使用布尔运算和局部坐标系(实战案例解析)

HFSS建模进阶&#xff1a;布尔运算与局部坐标系的高效实战指南 在微波器件和天线设计的数字世界里&#xff0c;精确的三维建模往往是成功仿真的第一步。当您已经掌握了HFSS的基础建模操作后&#xff0c;如何将建模效率提升到专业水平&#xff1f;本文将带您深入探索两个常被忽视…...

保姆级教程:NLI-DistilRoBERTa快速部署与简单调用指南

保姆级教程&#xff1a;NLI-DistilRoBERTa快速部署与简单调用指南 1. 项目概述与核心能力 NLI-DistilRoBERTa是基于DistilRoBERTa模型的自然语言推理(Natural Language Inference)Web服务&#xff0c;专门用于分析两个句子之间的逻辑关系。这个轻量级模型保留了RoBERTa模型90…...

企业邮箱安全必看:SPF、DKIM、DMARC 三件套配置实战(附常见错误排查)

企业邮箱安全必看&#xff1a;SPF、DKIM、DMARC 三件套配置实战&#xff08;附常见错误排查&#xff09; 当一封伪造CEO签名的钓鱼邮件成功进入财务部门邮箱时&#xff0c;企业面临的不仅是数据泄露风险——根据Verizon《2023年数据泄露调查报告》&#xff0c;83%的商务邮件入侵…...

JDK17下Lombok报错?手把手教你解决IllegalAccessError问题(附最新版本配置)

JDK17与Lombok兼容性实战&#xff1a;彻底解决IllegalAccessError的终极指南 最近在将项目迁移到JDK17时&#xff0c;不少开发者反馈遇到了一个棘手的错误&#xff1a;java.lang.IllegalAccessError&#xff0c;特别是与Lombok相关的模块访问问题。这个错误看似简单&#xff0c…...

Elasticsearch踩坑记录:scaled_float字段查询结果和你想的不一样?

Elasticsearch中的scaled_float&#xff1a;为什么你的查询结果总是不准确&#xff1f; 刚接触Elasticsearch的开发者经常会遇到一个令人困惑的现象&#xff1a;明明存储的是精确的浮点数&#xff0c;查询时却返回了意料之外的结果。这背后往往与scaled_float字段类型的特殊处理…...

OpenClaw任务编排:用Qwen3.5-4B-Claude实现爬虫+分析闭环

OpenClaw任务编排&#xff1a;用Qwen3.5-4B-Claude实现爬虫分析闭环 1. 为什么需要自动化任务编排 去年我接手了一个市场调研项目&#xff0c;需要每周从20多个网站抓取产品价格数据&#xff0c;清洗后生成趋势图表。最初用Python脚本手动Excel处理&#xff0c;每次要花3小时…...

Delphi XE在Linux上开发桌面应用:从安装FMXLinux插件到第一个跨平台GUI程序

Delphi XE在Linux上开发桌面应用&#xff1a;从安装FMXLinux插件到第一个跨平台GUI程序 引言 对于熟悉Delphi的开发者来说&#xff0c;将Windows平台上的成熟应用迁移到Linux环境一直是个挑战。Delphi XE虽然支持Linux开发&#xff0c;但官方仅提供命令行应用的支持&#xff…...

【FastAPI 2.0流式AI响应核心机密】:3大异步协程调度陷阱、2处EventSource底层劫持点、1个未公开的StreamingResponse状态机设计缺陷

第一章&#xff1a;FastAPI 2.0流式AI响应的架构演进与设计哲学FastAPI 2.0 将流式响应能力从实验性支持提升为核心原语&#xff0c;其底层重构了 Starlette 的响应生命周期与事件循环集成机制&#xff0c;使 Server-Sent Events&#xff08;SSE&#xff09;、text/event-strea…...

RRT*在ROS中的实战:用Gazebo仿真实现动态避障(Python+ROS Noetic)

RRT*在ROS中的实战&#xff1a;用Gazebo仿真实现动态避障&#xff08;PythonROS Noetic&#xff09; 路径规划是机器人自主导航的核心技术之一。在复杂动态环境中&#xff0c;如何快速找到一条安全且优化的路径一直是研究热点。RRT*&#xff08;Rapidly-exploring Random Trees…...