首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
ElasticSearch开篇ES的安装
ElasticSearch的基本概念与名词解析
ElasticSearch数据管理文档的基础操作
ElasticSearch全文搜索API实践
ElasticSearch之Term-Query-API实践
ElasticSearch组合查询
ElasticSearch推荐搜索选项Suggesters的API
ElasticSearch统计需求之聚合
ElasticSearch集群管理API的使用
ElasticSearch索引管理API的使用
ElasticSearch中Mapping的使用
ElasticSearch关系模型之嵌套类型和父子文档
ElasticSearch正排索引与倒排索引简介
ElasticSearch全文搜索之倒排索引的实现
ElasticSearch数据相似的依据之相关性评分
ElasticSearch词项生成器之分词器
ElasticSearch分布式之集群中常见问题与解决方案
ElasticSearch分布式文档搜索机制
ElasticSearch数据持久化之分布式文档的存储流程
ElasticSearch分页之from+size、search after、scroll api
ElasticSearch聚合分析的原理之聚合结果一定准确
ElasticSearch数据副本策略
ElasticSearch数据副本模型
ElasticSearch集群运维
ElasticSearch索引的生命周期ILM
ElasticSearch安全之集群安全
ElasticSearch异常管理之搭建ELK日志系统
当前位置:
首页>>
技术小册>>
ElasticSearch零基础到实战
小册名称:ElasticSearch零基础到实战
ElasticSearch提供了Suggesters API,可以帮助我们实现这些功能。本文将详细介绍Suggesters API的使用方法,并提供相关的代码示例。 **一、Suggesters API介绍** Suggesters API提供了以下几种搜索建议: Term Suggester:对输入的文本进行纠错,返回与输入文本最相似的文本。例如,“appl”输入错误,应该纠正为“apple”等。 Phrase Suggester:对输入的短语进行纠错,返回与输入短语最相似的短语。例如,“green appl”输入错误,应该纠正为“green apple”等。 Completion Suggester:提供自动完成提示功能,返回输入文本的前缀匹配项。例如,“app”输入后,应该自动提示“apple”等。 Context Suggester:根据上下文提供搜索建议,例如搜索商品时提供商品类型、品牌等建议。 在本文中,我们将以Completion Suggester为例进行介绍。 **二、Completion Suggester使用方法** Completion Suggester需要在Mapping中进行配置,定义一个新的字段类型为“completion”,并指定要自动完成的字段名。例如,我们要在“title”字段上实现自动完成提示: ```asp PUT /my_index { "mappings": { "my_type": { "properties": { "title_suggest": { "type": "completion", "analyzer": "simple", "preserve_separators": true, "preserve_position_increments": true, "max_input_length": 50, "contexts": [ { "name": "category", "type": "category", "path": "category" }, { "name": "brand", "type": "brand", "path": "brand" } ] } } } } } ``` 上述代码中,我们在“title_suggest”字段上定义了Completion Suggester,并指定了要自动完成的字段名为“title”。另外,我们指定了自动完成的分词器为“simple”,保留了分隔符和位置增量,并设置了输入长度限制为50。最后,我们定义了两个上下文,分别是“category”和“brand”,用于提供商品类型和品牌的搜索建议。 接下来,我们可以使用Suggesters API进行搜索建议。例如,我们要在“title”字段上搜索以“a”开头的自动完成建议: ```asp GET /my_index/_search { "suggest": { "title-suggest": { "prefix": "a", "completion": { "field": "title_suggest" } } } } ``` 上述代码中,我们使用了Suggesters API进行自动完成建议的搜索。其中,“title-suggest”是我们在Mapping中定义的Completion Suggester的名称,“prefix”指定了自动完成建议的前缀,即输入的文本,“field”指定了自动完成建议的字段名。 **三、代码示例** 下面给出一个完整的代码示例,演示如何使用Suggesters API实现自动完成提示功能: ```asp PUT /my_index { "mappings": { "my_type": { "properties": { "title_suggest": { "type": "completion", "analyzer": "simple", "preserve_separators": true, "preserve_position_increments": true, "max_input_length": 50, "contexts": [ { "name": "category", "type": "category", "path": "category" }, { "name": "brand", "type": "brand", "path": "brand" } ] } } } } } POST /my_index/_bulk { "index": { "_index": "my_index", "_type": "my_type", "_id": "1" } } { "title": "Apple iPhone 11", "category": "Mobile Phone", "brand": "Apple" } { "index": { "_index": "my_index", "_type": "my_type", "_id": "2" } } { "title": "Samsung Galaxy S20", "category": "Mobile Phone", "brand": "Samsung" } { "index": { "_index": "my_index", "_type": "my_type", "_id": "3" } } { "title": "Sony WH-1000XM4", "category": "Headphone", "brand": "Sony" } GET /my_index/_search { "suggest": { "title-suggest": { "prefix": "a", "completion": { "field": "title_suggest" } } } } ``` 在上述代码中,我们首先创建了一个名为“my_index”的索引,并在其中定义了一个名为“my_type”的类型。然后,我们在“my_type”类型上定义了一个名为“title_suggest”的Completion Suggester,并指定了要自动完成的字段名为“title”。 接着,我们向索引中添加了三条文档,分别表示“Apple iPhone 11”、“Samsung Galaxy S20”和“Sony WH-1000XM4”。 最后,我们使用Suggesters API进行搜索建议,搜索以“a”开头的自动完成建议。运行代码后,我们可以看到返回的搜索建议中包含了“Apple iPhone 11”的标题,符合我们的搜索条件。 **小结** 本文介绍了ElasticSearch的Suggesters API,重点介绍了Completion Suggester的使用方法,并提供了相关的代码示例。Completion Suggester可以帮助我们实现自动完成提示功能,提高搜索体验。除此之外,ElasticSearch还提供了Term Suggester、Phrase Suggester和Context Suggester等多种搜索建议,可以根据实际需求选择使用。
上一篇:
ElasticSearch组合查询
下一篇:
ElasticSearch统计需求之聚合
该分类下的相关小册推荐:
ElasticSearch入门与实践