Elasticsearch Completion Suggester 实战

本文介绍了Elasticsearch的Completion Suggester在实现输入框自动补全功能的应用。通过一个成语推荐的Java程序进行实战演示,详细讲解了创建mapping的步骤,包括设置analyzer、search_analyzer等参数,并探讨了数据导入和使用HttpClient进行REST API查询的方法。文章还揭示了Elasticsearch搜索推荐快速的原因,即利用FST进行前缀查找,但这也限制了Completion Suggester只能进行前缀匹配。

Completion Suggester是Elasticsearch SearchAPIs中一种,主要用于输入框的自动补齐功能。

我将通过字或者拼音首字母推荐成语的java程序作为实战演示。

项目地址:https://github.com/tangwanggong/week-project/tree/master/week-1

成语数据来源:https://github.com/pwxcoo/chinese-xinhua

#成语结构
{
    "derivation": "语出《法华经·法师功德品》下至阿鼻地狱。”",
    "example": "但也有少数意志薄弱的……逐步上当,终至堕入~。★《上饶集中营·炼狱杂记》",
    "explanation": "阿鼻梵语的译音,意译为无间”,即痛苦无有间断之意。常用来比喻黑暗的社会和严酷的牢狱。又比喻无法摆脱的极其痛苦的境地。",
    "pinyin": "ā bí dì yù",
    "word": "阿鼻地狱",
    "abbreviation": "abdy"
}

根据需求,我们需要检索的字段为word,abbreviation,以下为创建mapping的语句。

#创建mapping
PUT idiom
{
  "mappings": {
    "doc": {
      "properties": {
        
回答: Completion Suggester是一种用于关键词前缀匹配的功能,它可以根据用户输入的前缀来提供相关的补全选项。根据引用\[1\]的描述,Completion Suggester在精准程度上比Phrase和Term要好,但在召回率上则相对较低。因此,如果业务需求可以满足,只使用Completion Suggester进行前缀匹配是最理想的选择。然而,使用Completion Suggester并不是一件容易的事情,需要根据数据特性和业务需求,灵活搭配analyzer和mapping参数,并进行反复调试,才能获得理想的补全效果。此外,还可以使用Fuzzy Queries来增加匹配的模糊程度。总之,使用Completion Suggester需要根据具体情况进行调整和优化,以获得最佳的模糊匹配效果。 #### 引用[.reference_title] - *1* *2* [Elasticsearch Suggester详解(自动补全)](https://blog.youkuaiyun.com/qq_40374604/article/details/114841800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ElasticSearch suggester](https://blog.youkuaiyun.com/zhanglh046/article/details/78536021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值