博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lucene全文索引遇到的问题
阅读量:6597 次
发布时间:2019-06-24

本文共 852 字,大约阅读时间需要 2 分钟。

hot3.png

        依旧是毕设,做到最后一点了,之前因为进度的关系,搜索使用的是最恶心的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

你可能感兴趣的文章
Java性能总结一(转)
查看>>
IE9/Firefox/Safari/Chrome/Opera支持模拟触发自定义DOM事件
查看>>
杂谈---这些大忌,你在面试的时候发生过吗?(NO.1)
查看>>
minix中atoi、atol、atof的实现
查看>>
高效 Java Web 开发框架 JessMA v3.3.1 正式发布
查看>>
[转]C# WinForm动态调用远程Web服务
查看>>
跨数据库服务器查询和跨表更新
查看>>
盘点2013年那些最优秀的网页设计作品【系列五】
查看>>
C#语音朗读文本 — TTS的实现
查看>>
MongoDB中的高级查询(二)
查看>>
再寄小读者之数学篇[2014.07.01-2014.12.31]
查看>>
LA 4080 (多源最短路径+边修改+最短路径树)
查看>>
轻量级工具提示jQuery插件 - Tooltipster
查看>>
lxc命令简单速查
查看>>
[译] 构建未来的设计生态系统
查看>>
谈谈Java中的代理模式
查看>>
JNI开发流程与引用数据类型的处理
查看>>
Netty NioEventLoop 创建过程源码分析
查看>>
iOS 架构模式<demo解析>
查看>>
技术经理值得关注的5件事情
查看>>