es 查询 问题 模糊查询
来源:互联网 发布:小榕sql注入工具 编辑:程序博客网 时间:2024/05/27 20:52
当你搜索 宝马 bmw 等词可以通过 词典 ,相近词 进行 匹配 (包括 ik 等 分词器) 来解决,当我搜索 com. 或者 cn. 等类型包名的关键词 却匹配不出。不大会说,直接上代码第一个简单ik_syno (cname ename host)分词 $curl_param = [ 'size'=>$size, 'query'=>[ 'bool'=>[ 'must'=>[ 'multi_match'=>[ 'query'=>$param, 'fields'=>[ 'host','cname^10','ename' ], 'tie_breaker'=>0.3 ] ] ] ] ]; if($is_en_dian)$curl_param = $curl_param_dian; // 接下来 搜索 请求 结果 com. cn. 等搜不到内容第二个阶段 if(empty($is_en_dian)) { // 暂时解决 app 域名 搜索 $app_domain = [ 'com.','cn.','tv.','ctrip.','yong.','jp.' ]; foreach ($app_domain as $key => $value) { if(stripos($param,$value)===0) { $is_en_dian = 1; break; } } } $curl_param = [ 'size'=>$size, 'query'=>[ 'bool'=>[ 'must'=>[ 'multi_match'=>[ 'query'=>$param, 'fields'=>[ 'host','cname^10','ename' ], 'tie_breaker'=>0.3 ] ] ] ] ]; $curl_param_dian = [ 'size'=>$size, 'query'=>[ 'bool'=>[ 'must'=>[ [ 'prefix'=>[ 'host'=>$param ] ] ] ] ] ]; if($is_en_dian)$curl_param = $curl_param_dian; // 接下来 搜索 请求 // 暂时解决 com. cn. 的问题接下来 在想能不能一次搞定特殊词的搜索第三个阶段 这时候 mapping 配置有所改变ik_syno(cname ename) 和 english(host) 分词$curl_param = [ 'size'=>$size, 'query'=>[ 'bool'=>[ 'should'=>[ [ 'match'=>[ 'cname'=>[ 'query'=>$param, 'boost'=>10 ] ] ], [ 'match_phrase_prefix'=>[ 'host'=>$param ] ] ] ] ] ];通过 match_phrase_prefix 可以实现 。但是 必须 should (现有逻辑业务和数据)至于有没有更好的方案,进一步思考中。。。。
0 0
- es 查询 问题 模糊查询
- Access模糊查询%问题
- 模糊查询的问题
- oracle 模糊查询问题
- Blob模糊查询问题
- 模糊查询嵌套问题
- mybatis模糊查询问题
- mybatis 模糊查询问题
- ASP模糊查询分页问题
- Mybatis like 模糊查询问题
- Mybatis like 模糊查询问题
- GreenDao模糊(like)查询问题
- mybatis like 模糊查询问题
- SQL模糊查询排序问题
- Mysql中文模糊查询问题
- 关于面试问题---模糊查询
- es 查询
- es 查询
- 离线轻量级大数据平台Spark之JavaRDD关联join操作
- eclipse高DPI缩放工具
- 蓝桥杯,关于数独的递归思路解决问题
- vsftpd配置文件详解
- 代码技巧1监听器从子线程切换主线程
- es 查询 问题 模糊查询
- 学习感悟2
- jmap查看内存使用情况与生成heapdump--转
- ubuntu记录
- 构建类似Office 2007框架的WPF应用程序(2)
- 性能测试工具之JMeter
- Selective Search 学习笔记
- rizhi
- 一句代码调用UUIScrollView 为底的无限循环