设为首页 收藏本站
查看: 983|回复: 0

[经验分享] Solr 3.5 suggest autocomplete

[复制链接]

尚未签到

发表于 2015-7-17 07:46:10 | 显示全部楼层 |阅读模式
  上一步 ()  , 已经配置好了  Solr3.5 和 mmseg4j 分词 , 接下来配置 Solr3.5 的 suggest 来实现 autocomplete(搜索自动提示补全功能)
  输入提示 , 分为两种 :  单词提示 , 短语提示
  单词提示 , 使用的  字段类型 , 分析过滤配置如下 :







  
  短语提示 , 使用的  字段类型 , 分析过滤配置如下 :








  

  

  我这里用的是 短语提示 ,  把上面的配置文件 , 拷贝到  schema.xml  文件的  types  节点里 。
  然后在 schema.xml  文件的 fields  节点里 , 新建一个索引字段 , 使用上面的  短语提示[ text_auto ]
  
  如果我们需要对一个 "关键词"  同时查询多个列 , 那么我们可以使用  CopyField 进行列的合并 , 如下 :
  
  source  是要拷贝的字段  ,  dest 是要合并到的字段 , maxChars 是字数限制
  
  更多关于  schema.xml 里的配置信息 , 请查阅 http://wiki.apache.org/solr/SchemaXml   

  接下来 , 添加 suggest 的查询接口 , 在 solrconfig.xml 文件里 , 添加如下
  
     
      suggest
      org.apache.solr.spelling.suggest.Suggester
      org.apache.solr.spelling.suggest.tst.TSTLookup
      text_autocomplete
     
   
   
     
      true
      suggest
      10
     
     
      suggest
     
   
  searchComponent 是一个 拼写检查的组件 , 里面定义的属性信息包括 :
  name   当前组件的名称
  classname  拼写检查使用的类名
  lookupImpl   绑定这个搜索的对象,目前有两个类可以使用-JasperLookup、TSTLookup,第二个效率更高
  field  是 schema.xml 里的字段名
  requestHandler 是查询接口 , 在 url 里访问使用的 。
  
  到这里 , 我们的suggest配置已经完成了, 接下来重启 Apache , 刚配置好事查不出任何数据的 , 已经创建好的索引里没有刚配置的索引 , 这时候需要重新生成索引文件 , 把新配置的索引给生成数据 , 我的索引是 连接的  mysql 数据库创建的 , 那么我需要重新导入一下数据 , 访问 dataimport?command=full-import  , 需要访问两次 , 如果还是不行 , 则把 webapps\solr\conf\multicore\core0\conf 目录下的 dataimport.properties 文件删掉 , 重新访问导入数据试试看 。
  这时候可以访问  select?q=*:* 来查询所有的索引数据 , 看看新配置的索引是否已经启用 , 如果没有新配置的索引 , 则重新执行导入数据创建索引 。
  重新生成索引成功以后 , 我们访问   /suggest?spellcheck.build=true  对查询组件建立索引,
  然后访问  /suggest?q=har 进行查询 , har 是查询的词语 , 如果查询不出来数据 , 访问  /suggest?spellcheck.build=true&q=har 。
  如果一切配置正常 , 此时会查询出数据 , 但是 仅仅是匹配查询可以了 , 并没有返回 相近词、匹配结果数等、
  
  ----------------------------------------------------------------
  
  在 suggest 的基础上 , 如果我们采用 facet的方式 , 则可以匹配查询 , 还带有匹配查询的单结果数量 , 如下访问
  select?spellcheck.build=true&rows=0&q=*:*&facet=true&facet.field=text_autocomplete&facet.mincount=1&facet.prefix=hear
  注意 , 这里用的是 select 接口 , 而不是 suggest 接口 , 这里的访问URL需要替换的是 :
  facet.field  是 schema.xml 里的配置字段
  facet.prefix 是查询的关键字 或 短语
  
  facet 的方式相对于 suggest 的方式性能上差些 。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-87414-1-1.html 上篇帖子: Solr搜索基础 下篇帖子: solr json ajax
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表