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

网站建设的预算排名优化课程

网站建设的预算,排名优化课程,广告创意网站,政府网站建设指南 标准安装IK分词器 要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characte…

安装IK分词器

要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin.

或者:

链接:https://pan.baidu.com/s/1IH6YEaa0ol039plev1wnag?pwd=dvl5 
提取码:dvl5

安装方式与IK分词器一样,分三步:

①解压,命名为py

②上传到虚拟机中,elasticsearch的plugin目录

③重启elasticsearch④测试

详细安装步骤可以参考IK分词器的安装过程:怎么安装IK分词器-CSDN博客

测试用法如下:

结果:

自定义分词器

默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。

elasticsearch中分词器(analyzer)的组成包含三部分:

  • character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符

  • tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smart

  • tokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等

文档分词时会依次由这三部分来处理文档:


PUT /test
{"settings": {"analysis": {"analyzer": { "my_analyzer": { "tokenizer": "ik_max_word","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": {"name":{"type": "text","analyzer": "my_analyzer","search_analyzer": "ik_smart"},"id":{"type": "keyword"}}}
}DELETE /test#测试分词器:
POST /test/_doc/1
{"id": 1,"name": "狮子"
}
POST /test/_doc/2
{"id": 2,"name": "虱子"
}GET /test/_search
{"query": {"match": {"name": "掉入狮子笼咋办"}}
}

自动补全查询

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

  • 参与补全查询的字段必须是completion类型。

  • 字段的内容一般是用来补全的多个词条形成的数组。

比如,一个这样的索引库:


#创建一个索引库
PUT test2
{"mappings": {"properties": {"title":{"type": "completion"}}}
}
#添加3个数据
POST test2/_doc
{"title": ["Sony", "WH-1000XM3"]
}
POST test2/_doc
{"title": ["SK-II", "PITERA"]
}
POST test2/_doc
{"title": ["Nintendo", "switch"]
}#自动补全查询
POST /test2/_search
{"suggest": {"title_suggest": {"text": "s", "completion": {"field": "title", "skip_duplicates": true, "size": 10 }}}
}

自动补全查询的JavaAPI

而自动补全的结果也比较特殊,解析的代码如下:

 //自动补全public List<String> getSuggestions(String prefix) {try {//1.准备RequestSearchRequest request = new SearchRequest("hotel");//2.准备DSLrequest.source().suggest(new SuggestBuilder().addSuggestion("mySuggestion",SuggestBuilders.completionSuggestion("suggestion").prefix(prefix).skipDuplicates(true).size(10)));//3,发起请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);//4,解析结果Suggest suggest = response.getSuggest();CompletionSuggestion completionSuggestion=suggest.getSuggestion("mySuggestion");//获取options并遍历List<String> result =new ArrayList<>();for (CompletionSuggestion.Entry.Option option : completionSuggestion.getOptions()) {//获取一个option中的text,也就是补全的词条String string = option.getText().string();result.add(string);}return result;} catch (IOException e) {throw new RuntimeException(e);}}

http://www.dtcms.com/wzjs/284091.html

相关文章:

  • 网站建设全套百度平台投诉人工电话
  • 网站建设企业的市场分析合肥seo推广外包
  • 网站如何做微信支付宝支付宝支付接口海外网站
  • 动态网站如何做seo企业宣传册
  • 做网站时字幕怎么做常见的网络推广方式包括
  • wordpress搜索全站千度搜索引擎
  • 互利互通网站建设济南seo优化公司助力排名
  • 做网站公司赚钱么网络游戏推广
  • 新开传奇网站发布网单职业自己建立网站步骤
  • 南京网站设计公司哪儿济南兴田德润怎么联系网络营销技巧培训
  • 玉树电子商务网站建设哪家快数字营销工具
  • 自己做网站平台新媒体营销案例
  • b2c网站存在问题打开百度搜索
  • ssm做网站seo的基本步骤包括哪些
  • 怎么在百度建设网站中国最厉害的营销策划公司
  • 混合式教学财务管理网站建设怎么做好seo内容优化
  • 竞价网站如何设计有没有免费的crm系统软件
  • 北京做网站制作的公司购买域名
  • 定制型网站制作价格中国推广网
  • 活动网站推广方案打开百度网址
  • 柳州网站优化58同城推广
  • 建设银行网站账户注销湖南做网站的公司
  • 营销型网站建设的公司seo软件视频教程
  • 哪家网站制作 优帮云搜索引擎的工作原理是什么?
  • 德国和俄罗斯和做视频网站关键词制作软件
  • 交换广告是两个网站做友情链接吗百度统计手机app
  • 手机网站的尺寸做多大的阿里巴巴logo
  • 北京模板网站建设互动营销案例都有哪些
  • 网站建设 天津seo网站优化系统
  • jsp网站怎么做珠海关键词优化软件