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

网站建设方案 预算宿州高端网站建设公司

网站建设方案 预算,宿州高端网站建设公司,深圳企业网站seo,全国最好的广告公司加盟效果展示 在搜索框根据拼音首字母进行提示 拼音分词器 和IK中文分词器一样的用法#xff0c;按照下面的顺序执行。 # 进入容器内部 docker exec -it elasticsearch /bin/bash# 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch…效果展示 在搜索框根据拼音首字母进行提示 拼音分词器 和IK中文分词器一样的用法按照下面的顺序执行。  # 进入容器内部 docker exec -it elasticsearch /bin/bash# 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.12.1/elasticsearch-analysis-pinyin-7.12.1.zip#退出 exit #重启容器 docker restart elasticsearch 重启完成之后进行拼音分词可以看见每个字都有以及整个词语首字母组合成的一个。 ​ 自定义分词器 只用默认的功能还远远不够。 先用ik进行分词再用拼音分词器分 ​ ​ 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}}} } 在test这份索引库当中再次测试就可以看见既有中文也有拼音分词了。 POST /test/_analyze {text:[北岭山脚鼠鼠],analyzer: my_analyzer } ​ 但是这里还会有问题用中文搜索时会把同音字也一起搜索到 ​ 指定搜索时和创建时用不同的分词器 ​ 在上面的语句里面加上了一条 search_analyzer: ik_smart POST /test/_doc/1 {id: 1,name: 狮子 } POST /test/_doc/2 {id: 2,name: 虱子 }GET /test/_search {query: {match: {name: 掉入狮子笼咋办}} } 结果如下 ​ DSL实现自动补全查询 ​ 查询补全语法 ​ 数据准备 // 自动补全的索引库 PUT test2 {mappings: {properties: {title:{type: completion}}} } // 示例数据 POST test2/_doc {title: [Sony, WH-1000XM3] } POST test2/_doc {title: [SK-II, PITERA] } POST test2/_doc {title: [Nintendo, switch] } 查询语句 // 自动补全查询 GET /test2/_search {suggest: {title_suggest: {text: s, // 关键字completion: {field: title, // 补全字段skip_duplicates: true, // 跳过重复的size: 10 // 获取前10条结果}}} } ​ ​ 酒店数据自动补全 ​ 修改酒店索引库数据结构 DELETE /hotel # 酒店数据索引库 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}}} } 先删除再重新创建一个 然后在HotelDoc这个实体类里面新增一个字段suggestion,这个字段是由现有的字段组成放进去。 private ListString suggestion;this.suggestion Arrays.asList(this.brand,this.business);然后重新执行之前的批量插入的语句 ​ 再次测试搜索可以看见搜索得到的结果里面多出了品牌和商圈信息。  ​ 但是这里business字段有可能是由多个的要进行切割。 修改HotelDoc上面的构造方法的代码 if(this.business.contains(、)){//business有多个值需要切割String[] arr this.business.split(、);//添加元素this.suggestionnew ArrayList();this.suggestion.add(this.brand);Collections.addAll(this.suggestion,arr);}else {this.suggestion Arrays.asList(this.brand, this.business);} 再次插入数据可以看见多个词条已经分开了。  ​ 进行搜索测试 搜索所有以h开头的词条 ​ RestAPI实现自动补全 ​ 请求组装响应解析 Testvoid testSuggest() throws IOException {//1.准备requestSearchRequest request new SearchRequest(hotel);//2.准备DSlrequest.source().suggest(new SuggestBuilder().addSuggestion(suggestion,SuggestBuilders.completionSuggestion(suggestion).prefix(h).skipDuplicates(true).size(10)));//3.发起请求SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析结果Suggest suggest response.getSuggest();//4.1根据补全查询名称获取补全结果CompletionSuggestion suggestions suggest.getSuggestion(suggestion);//4.2获取optionsListCompletionSuggestion.Entry.Option options suggestions.getOptions();//4.3遍历for (CompletionSuggestion.Entry.Option option : options) {String text option.getText().toString();System.out.println(text);}} 实现搜索框自动补全 Controller中 GetMapping(suggestion)public ListStringgetSuggestion(RequestParam(key)String prefix){return hotelService.getSuggestions(prefix);} Service中 Overridepublic ListString getSuggestions(String prefix) {try {//1.准备requestSearchRequest request new SearchRequest(hotel);//2.准备DSlrequest.source().suggest(new SuggestBuilder().addSuggestion(suggestion,SuggestBuilders.completionSuggestion(suggestion).prefix(prefix).skipDuplicates(true).size(10)));//3.发起请求SearchResponse response client.search(request, RequestOptions.DEFAULT);//4.解析结果Suggest suggest response.getSuggest();//4.1根据补全查询名称获取补全结果CompletionSuggestion suggestions suggest.getSuggestion(suggestion);//4.2获取optionsListCompletionSuggestion.Entry.Option options suggestions.getOptions();//4.3遍历ListStringlistnew ArrayList(options.size());for (CompletionSuggestion.Entry.Option option : options) {String text option.getText().toString();list.add(text);}return list;} catch (IOException e) {throw new RuntimeException(e);}} 效果演示 成功根据提示进行查询
http://www.zqtcl.cn/news/88960/

相关文章:

  • 手机上的网站是怎么做的吗苏州专业设计网站
  • 建设银行河南分行网站岳阳网站开发网站运营
  • wordpress两个网站同步win7 iis建立网站
  • 如何申请一个网站 做视频网站改版好吗
  • saas云建站平台源码wordpress页面构建编辑插件
  • 网站移动端和PC端自适应怎么做wordpress用户分组
  • 广州天与地网站建设wordpress get_post_mime_type
  • 网站建设项目前分析买实体服务器做网站
  • 网站建设运营工作业绩百度 营销推广费用
  • 网站备案在哪个网站wamp可以做视频网站吗
  • 新网备案成功了怎么做网站网站怎样排版
  • 网站代备案需要多少钱注册网站刀具与钢材范围
  • 部队内网网站建设方案图标怎么在wordpress
  • 宣城网站开发网络公司深圳设计网站哪个好
  • 网站建设找 三尾狐wordpress kleo
  • 电子商务网站建设题6做网站软件ps
  • c 网站开发框架网站图片装修的热切图怎么做
  • 伍佰亿网站系统上海自助建站企业
  • 银川市住房和城乡建设局网站公告城阳网站改版
  • 网站开发工具中三剑客包括孝感英文网站建设
  • 怎么做建设网站首页宁波全网营销型网站建设
  • wordpress 站库分离哈尔滨 做网站公司哪家好
  • 英语培训网站建设需求分析报告能免费建手机网站吗
  • ps如何做切片网站按钮无代码开发平台有哪些
  • 网站静态页面生成没有网站怎么快速做cps
  • 罗湖小学网站建设做视频网站视频放在哪里
  • 腾讯云网站建设教学视频wordpress 别名
  • 某企业网站建设方案2000字门户网站技术方案
  • 怎样健网站需要找做网站的
  • 百度搜索网站图片上海中学校服