es自动补全(仅供自己参考)

elasticssearch提供了CompletionSuggester查询来实现自动补全功能。这个查询会匹配以用户输入内容开头的词条并返回。为了提高补全查询效率,对于文档中字段的类型有一些约束:

+ 查询类型必须是:completion

+ 字段内容是多个补全词条形成的数组

PUT /test2
{"mappings": {"properties": {"title":{"type": "completion"   #创建字段类型的时候,只能是completion}}}
}POST /test2/_doc/1
{"title":["Sony", "WH-1000XM3"]    #字段的内容是多词条形成的数组
}POST test2/_doc/2
{"title": ["SK-II", "PITERA"]
}
POST test2/_doc/3
{"title": ["Nintendo", "switch"]
}# 查询语法,自动补全
GET /test2/_search
{"suggest": {"titleSuggest": {    #查询的名称"text": "So",        #查询的内容"completion": {    #查询补全的类型"field": "title",    #字段类型"skip_duplicates": true,    #跳过重复的词条"size": 10         #查询的大小}}}
}

完成一个hotel酒店的es库创建:(创建了两个自定义的分词器)

PUT /hotel
{"settings": {"analysis": {"analyzer": {"text_anlyzer": {"tokenizer": "ik_max_word","filter": "py"},"completion_analyzer": {"tokenizer": "keyword","filter": "py"}},"filter": {"py": {"type": "pinyin","keep_full_pinyin": false,"keep_joined_full_pinyin": true,"keep_original": true,"limit_first_letter_length": 16,"remove_duplicated_term": true,"none_chinese_pinyin_tokenize": false}}}},"mappings": {"properties": {"id":{"type": "keyword"},"name":{"type": "text","analyzer": "text_anlyzer","search_analyzer": "ik_smart","copy_to": "all"},"address":{"type": "keyword","index": false},"price":{"type": "integer"},"score":{"type": "integer"},"brand":{"type": "keyword","copy_to": "all"},"city":{"type": "keyword"},"starName":{"type": "keyword"},"business":{"type": "keyword","copy_to": "all"},"location":{"type": "geo_point"},"pic":{"type": "keyword","index": false},"all":{"type": "text","analyzer": "text_anlyzer","search_analyzer": "ik_smart"},"suggestion":{"type": "completion","analyzer": "completion_analyzer","search_analyzer": "ik_smart"  # 使用这个为了拼音和汉字都可以使用,而不只是拼音}}}
}

java代码查询:

 @Testpublic void completionTest() throws IOException {SearchRequest request = new SearchRequest("hotel");request.source().suggest(new SuggestBuilder().addSuggestion("suggestions",SuggestBuilders.completionSuggestion("suggestion").prefix("火").size(10).skipDuplicates(true)));SearchResponse response = client.search(request, RequestOptions.DEFAULT);Suggest suggest = response.getSuggest();CompletionSuggestion suggestions = suggest.getSuggestion("suggestions");List<CompletionSuggestion.Entry.Option> options = suggestions.getOptions();for (CompletionSuggestion.Entry.Option option : options) {String string = option.getText().string();System.out.println(string);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5304.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

了解云计算工作负载保护的重要性及必要性

云计算de小白 云计算技术的快速发展使数据和应用程序安全成为一种关键需求&#xff0c;而不仅仅是一种偏好。随着越来越多的客户公司将业务迁移到云端&#xff0c;保护他们的云工作负载&#xff08;指所有部署的应用程序和服务&#xff09;变得越来越重要。云工作负载保护&…

ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染

一、组件基础 1.什么是ArkTS ArkTS是HarmoyOS优选的助力应用开发的语言&#xff0c;ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步的扩展&#xff0c;继承了TS所有的特性&#xff0c;是TS的超集。 扩展的能力如下&#xff1a; 基本语法 …

从 ES Kafka Mongodb Restful ... 取到 json 之后

json 是个好东西&#xff0c;它可以使用公共的文本形式承载了丰富的结构化数据的信息。现代很多技术都在喜欢使用 json 作为数据传输格式&#xff0c;比如 Elastic Search,Restful,Kafka 等&#xff0c;Mongodb 这类对性能较在意的技术则使用了二进制化的 json。 结构化的数据…

Rust-宏编程

巴山楚水凄凉地&#xff0c;二十三年弃置身。 怀旧空吟闻笛赋&#xff0c;到乡翻似烂柯人。 沉舟侧畔千帆过&#xff0c;病树前头万木春。 今日听君歌一曲&#xff0c;暂凭杯酒长精神。 ——《酬乐天扬州初逢席上见赠》唐刘禹锡 【哲理】翻覆的船只旁仍有千千万万的帆船经过&a…

抖音短视频矩阵源码/矩阵系统搭建/短视频矩阵系统源码开发知识分享

短视频矩阵系统架构解析 在构建短视频矩阵系统时&#xff0c;通常会采用三种核心的框架技术&#xff1a;Spring、Struts和Hibernate。每种框架都承担着不同的职责&#xff0c;共同支撑起系统的高效运行。 Spring框架&#xff1a;作为全栈式的Java开发平台&#xff0c;它提供了…

【docker】6. 镜像仓库/镜像概念

Docker Registry&#xff08;镜像仓库&#xff09; 什么是 Docker Registry 镜像仓库 (Docker Registry) 负责存储、管理和分发镜像&#xff0c;并且提供了登录认证能力&#xff0c;建立了仓库的索引。 镜像仓库管理多个 Repository&#xff0c; Repository 通过命名来区分。…

AJAX 全面教程:从基础到高级

AJAX 全面教程&#xff1a;从基础到高级 目录 什么是 AJAXAJAX 的工作原理AJAX 的主要对象AJAX 的基本用法AJAX 与 JSONAJAX 的高级用法AJAX 的错误处理AJAX 的性能优化AJAX 的安全性AJAX 的应用场景总结与展望 什么是 AJAX AJAX&#xff08;Asynchronous JavaScript and XML…

ASP.NET Core 路由规则,自定义特性路由 ,IActionConstraint 路由约束 总结 mvc

资料 资料 路由服务 路由服务是在 Program.cs 中使用 builder.Services.AddRouting()注册的&#xff0c; 只是默认在 builder 之前已经注册过了&#xff0c;无需我们再次注册。 AddRouting()方法必须在 UseRouting()方法之前运行&#xff0c;它是路由的基础服务。 MapContro…

二分法查找(c基础)

二分法查找一个有序数组中是否有某个数 大家看了可以自己写一下 &#xff08; 要用知识点 数组 while循环 scanf 函数 printf函数 &#xff09; //用二分法查找 #include<stdio.h> int main() {char arr[] { 1,2,3,4,5,6,7,8,9,10 };int sz sizeof(arr) / size…

20241106软考架构-------软考案例12答案

每日打卡题案例12答案 【2015年真题】 难度&#xff1a;一般 阅读以下关于应用系统数据架构的说明&#xff0c;回答下列问题。&#xff08;25分&#xff09; 【说明】 某软件公司拟开发一套贸易综合管理系统&#xff0c;包括客户关系管理子系统和商品信息管理子系统两部分。客…

wps的Excel中使用条件格式

本例演示怎样根据单元格的值设置单元格的格式&#xff0c;重点介绍多条件的混合使用 例&#xff1a;请将列2中值为A或A的单元格设置为绿色 多条件&#xff0c;即是与、或、非的组合&#xff0c;wps里有对应的函数可用

[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关

1DML数据操作语言,增加删除改数据 插入数据INSERT 插入添加数据,两种方法 方式1:VALUES添加数据 #准备工作 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, name VARCHAR(15), hire_data DATE, salary DOUBLE(10,2)); SELECT * FROM emp1 INSERT INTO em…

GIS地形图配准实验

地形图配准&#xff1a;指将地形图或其他地理数据&#xff08;如航拍图像、卫星图像等&#xff09;与地理坐标系统对齐的过程&#xff0c;使得这些图像或图形能够在地理空间中正确地定位。配准是将非地理坐标的地图或图像转换为地理坐标的一个重要步骤 分析原地形图 地图左上…

Python酷库之旅-第三方库Pandas(198)

目录 一、用法精讲 921、pandas.Index.get_level_values方法 921-1、语法 921-2、参数 921-3、功能 921-4、返回值 921-5、说明 921-6、用法 921-6-1、数据准备 921-6-2、代码示例 921-6-3、结果输出 922、pandas.Index.get_loc方法 922-1、语法 922-2、参数 92…

机器学习(四)——神经网络(神经元、感知机、BP神经网络、梯度下降、多层神经网络、Python源码)

目录 关于1 神经元模型2 感知机与多层网络3 误差逆传播算法4 全局最小与局部极小5 其他常见神经网络6 深度学习X 案例代码X.1 源码X.2 数据集&#xff08;加州房价数据&#xff09;X.3 模型效果 关于 本文是基于西瓜书&#xff08;第五章&#xff09;的学习记录。内容包括神经…

Diving into the STM32 HAL-----Clock Tree笔记

几乎每个数字电路都需要一种方法来同步其内部电路或与其他电路同步。时钟是一种产生周期性信号的设备&#xff0c;它是数字电子学中最普遍的心跳源形式。 然而&#xff0c;相同的时钟信号不能用于馈送现代微控制器&#xff08;如 STM32 微控制器&#xff09;提供的所有组件和外…

每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书

目录 1.OpenAI因算力瓶颈暂缓GPT-5发布 合作芯片开发寻求突破2.现在&#xff0c;&#x1d54f; 允许被你屏蔽的人继续查看你的帖子3.硬刚Intel与AMD&#xff01;NVIDIA明年推出PC芯片4.苹果停止签署 iOS 18.0.1&#xff0c;不再允许从 18.1 降级5.Nvidia 加入道琼斯指数成份股 …

高效率的快捷回复软件 —— 客服宝聊天助手

在电商行业日益繁荣的今天&#xff0c;高效的客户沟通对于企业的成功至关重要。无论是电商平台、居家客服还是其他各类客服行业&#xff0c;都需要一款强大的工具来提升工作效率。今天&#xff0c;我们就来介绍一款高效率的快捷回复软件 —— 客服宝聊天助手。 一、跨平台跨店铺…

RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式)

RabbitMQ如何保证发送的消息可靠&#xff08;RabbitMQ的Confirm模式和2.Return模式&#xff09; 1、RabbitMQ消息Confirm模式&#xff08;保证从生产者到交换机的消息可靠&#xff09;1.1、Confirm模式简介1.2、具体代码实现1.2.1、application.yml 开启确认模式1.2.2、生产者方…

讲讲分布式事务?

大家好&#xff0c;我是锋哥。今天分享关于【讲讲分布式事务&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲讲分布式事务&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在现代的分布式系统中&#xff0c;数据往往分布在不同的服务器、数据中…