lucene全文索引遇到的问题

        依旧是毕设,做到最后一点了,之前因为进度的关系,搜索使用的是最恶心的like,现在刚好还有一点空余的时间,将其修改为lucene。

        由于之前没有使用过lucene,所以果断把红薯的LuceneIndexUtil搞下来看了看,然后自己重新打了一遍,在打的时候顺便网上找了一些lucene的资料,所以敲了一遍之后有了一点感觉了。

         我目前前台涉及到搜索的只有一个productInfo,而每一个商品都有一个productCategory,当时做项目的时候为了简化,将productCategory中设置了层次只有两层,由于用户可以通过搜索productName,类别名来查询商品,最开始的时候定义了一个LuceneTaskProductInfo的Java Bean,它里面存放pid,productName,catName,而productName和catName设索引。

         我写了一个suggest的组件,当用户在输入框输入的内容发生改变之后,会异步请求后端,将以输入字符串开头的类别或商品名查询出来,最多七条。

         当用户输入某一个商品名的几个字母的时候,suggest就会提示整个商品名称,用户选择对应商品,然后提交之后,搜索总是为空。

         我当时郁闷了一把,为什么不行呢,开始以为是编码问题,后面发现其实是因为,lucene里面productName我设置的是index,它会进行分词,而我把productName直接传进去,即使是通过WildcardQuery也查询不到,所以后面就把suggest中返回商品名称的去掉了,单纯返回类别名了。

        后面又想到用户可能输入一级类别的名称,所以果断LuceneTaskProductInfo中又添加了parentCatName,把它也设置为index。

        再后面就是做了一个很简单的功能增强,把用户输入的串按照空格切开,然后再搜索。

        貌似就这么多了,记录完成,收工!!

转载于:https://my.oschina.net/mingtingling/blog/122951

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值