Phrase Suggester:短语纠错

  • 概念
  • 创建索引mapping
  • 插入数据
  • 建议查询
  • 响应结果
  • 扩展

概念

term suggest提供一个非常方便的API,用于在一定的字符串距离内按每个令牌访问单词替代。API允许单独访问流中的每个令牌,而建议选择则留给API使用者。然而,为了向最终用户提出建议,往往需要预先选定的建议。

创建索引mapping

一旦你设置了分析器和映射,你就可以在同一个地方使用短语建议器

PUT test
{"mappings": {"properties": {"title": {"type": "text","fields": {"trigram": {"type": "text","analyzer": "trigram"},"reverse": {"type": "text","analyzer": "reverse"}}}}}
}

插入数据

POST test/_doc?refresh=true
{"title": "noble warriors"}
POST test/_doc?refresh=true
{"title": "nobel prize"}

一旦你设置了分析器和映射,你就可以在同一个地方使用暗示器这个短语:

建议查询

POST test/_search
{"suggest": {"text": "noble prize","simple_phrase": {"phrase": {"field": "title.trigram","size": 1,"gram_size": 3,"direct_generator": [ {"field": "title.trigram","suggest_mode": "always"} ],"highlight": {"pre_tag": "<em>","post_tag": "</em>"}}}}
}

响应结果

响应包含建议,由最有可能的拼写纠正首先评分。在这种情况下,我们得到了预期修正“nobel prize”。

{"_shards": ..."hits": ..."timed_out": false,"took": 3,"suggest": {"simple_phrase" : [{"text" : "noble prize","offset" : 0,"length" : 11,"options" : [ {"text" : "nobel prize","highlighted": "<em>nobel</em> prize","score" : 0.48614594}]}]}
}

扩展

下面的示例显示了使用两个生成器的短语建议调用:第一个使用了包含普通索引术语的字段,第二个使用了使用反向过滤器索引的术语的字段(令牌是倒序索引的)。这是用来克服直接生成器需要一个常量前缀来提供高性能建议的限制。pre_filter和post_filter选项接受普通的分析器名称。

POST test/_search
{"suggest": {"text" : "obel prize","simple_phrase" : {"phrase" : {"field" : "title.trigram","size" : 1,"direct_generator" : [ {"field" : "title.trigram","suggest_mode" : "always"}, {"field" : "title.reverse","suggest_mode" : "always","pre_filter" : "reverse","post_filter" : "reverse"}]}}}
}

pre_filter和post_filter也可以用于在生成候选对象之后注入同义词。例如,对于查询队长usq,我们可以为术语usq生成一个候选usa,它是america的同义词。如果这句话的得分足够高,我们就可以向用户呈现captain america。

Suggester之Phrase Suggester相关推荐

  1. Elasticsearch:如何实现短语建议 - phrase suggester

    词组建议者(phrase suggester)是术语建议者(term suggester)的高级版本. 短语建议者使用的功能是选择整个校正后的短语而不是单个单词. 这是基于 ngram 语言建模的,短 ...

  2. 《Elasticsearch核心技术与实战》笔记

    <Elasticsearch核心技术与实战>笔记 1.Video1: 2.Video2: 3.Video3:简介及发展历史 4.Video4:家族成员 5.Video5:安装下载 逻辑设计 ...

  3. ES之Highlight及Suggest搜索推荐详解

    一. Highlight高亮查询 a) 三种高亮: i. unified highlighter:默认的高亮方式,使用Lucene的实现方式 ii. plain highlighter:性能较高,消耗 ...

  4. es 搜索推荐:Suggest

    搜索推荐:Suggest 概述 搜索一般都会要求具有"搜索推荐"或者叫"搜索补全"的功能,即在用户输入搜索的过程中,进行自动补全或者纠错.以此来提高搜索文档的匹 ...

  5. [Java]-Elastic中suggest查询建议

    文章目录 查询建议API 单个建议查询词 多个建议查询词 Suggester Term suggester 参数 phrase suggester completion suggester 搜索框实现 ...

  6. 使用 Elasticsearch 做一个好用的日语搜索引擎及自动补全

    最近基于 Elastic Stack 搭建了一个日语搜索服务,发现日文的搜索相比英语和中文,有不少特殊之处,因此记录下用 Elasticsearch 搭建日语搜索引擎的一些要点.本文所有的示例,适用于 ...

  7. java中使用kuromoji_使用Elasticsearch做一个好用的日语搜索引擎及自动补全

    最近基于 Elastic Stack 搭建了一个日语搜索服务,发现日文的搜索相比英语和中文,有不少特殊之处,因此记录下用 Elasticsearch 搭建日语搜索引擎的一些要点.本文所有的示例,适用于 ...

  8. Elasticsearch Suggester搜索建议详解

    文章目录 1. 概述 2. Term Suggester 2.1 定义 2.2 实例测试 2.3 参数讲解 3. Phrase Suggester 3.1 定义 3.2 实例测试 3.3 结果分析 4 ...

  9. elasticsearch系列五:搜索详解(查询建议介绍、Suggester 介绍)

    一.查询建议介绍 1. 查询建议是什么? 查询建议,为用户提供良好的使用体验.主要包括: 拼写检查: 自动建议查询词(自动补全) 拼写检查如图: 自动建议查询词(自动补全): 2. ES中查询建议的A ...

最新文章

  1. 2022-2028年中国铅锌精矿粉行业市场研究及前瞻分析报告
  2. 4K P60 444 相关的事
  3. 某书2018面试题之最长对称子串
  4. boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double
  5. ironpython console是否可以卸载_IronPython的第十块鳞片
  6. cordova指定版本_Cordova 基本命令 以及如何添加,删除插件
  7. ioslabel阴影_UILabel的内阴影
  8. UI组件-UIPickerView
  9. python高性能_Python高性能分布式执行框架-Ray
  10. 那些年我们常用的软件
  11. 分享 AI 圣经 PRML《模式识别与机器学习》百度云链接
  12. 为什么平方损失函数不适应于分类问题?——从概率论的角度
  13. 如何测试复制粘贴功能
  14. 一对一直播app大热,使用源码或自主开发一对一APP需要了解哪些技术?...
  15. ps高斯模糊出现白边
  16. 计算机网络 研究生复试考前最终版
  17. ker矩阵是什么意思_直观理解!你一定要读一下的“矩阵和线性代数入门”
  18. php建站: 2019年最好用的6个php环境搭建工具推荐
  19. 省时省力!这些Python高效代码片段必须牢记
  20. 量化选股——基于动量因子的行业风格轮动策略(第1部分—因子测算)

热门文章

  1. tp5爬去微信公众号文章信息
  2. Tomcat 的安装与环境配置教程(超详细)
  3. 【PCB布局布线】之蛇行等长布线(转)
  4. vivov3隐藏功能_vivoz3的隐藏功能在哪里 这三大隐藏功能要上天
  5. 剑指offer打卡|圆圈中最后剩下的数
  6. html结业大作业,index.html
  7. 人生的诗·350~354节
  8. 西宁盲人辅助计算机,青海西宁百名盲友齐聚一堂共迎国际盲人节
  9. 深入理解JavaScript系列(46):代码复用模式(推荐篇)
  10. oppo R15x如何返回?oppo R15x两种返回方法