[lucene] 相似度的问题
mniz
2010-04-14
不知道大家这样的问题是怎么解决的?
问题:有这样一种情况,有一条记录上面的描叙有:“深口”这个词。 如果用户输入 “深口鞋” 这样该采用那种查询方法要好些,我自己测试了几种 ,但效果都不怎么好 如果:模糊搜索 模糊搜索的话,如果用户输入的中间有一个空格的话,那就不能查询出来 如“深口 鞋”这样就不能查询出来 通配符搜索效果也不加 我是这样想的,把用户输入的词给切词,然后在根据切出来的词(一个集合)先找交集,然后在找并集,最后通通放到set 里面去 但是这样的情况,我必须的查询两次,查询两次而且展示出来的结果也是两种,这样效果太差了 所以想问下,大家如何判断用户输入的关键字哪个是比较重要的 ,还是直接根据用户输入的关键词来查询? |
|
yangfuchao418
2010-04-14
可以设置坡度
|
|
mniz
2010-04-14
yangfuchao418 写道 可以设置坡度
怎么弄,能详细点么 |
|
lzj0470
2010-04-17
用户输入深口 鞋,你可以在后台处理成深口鞋不就行了。在运用模糊搜索
|
|
silj_java
2010-04-19
用LUCENE
|
|
wgdwyh
2010-04-28
mniz 写道 不知道大家这样的问题是怎么解决的?
问题:有这样一种情况,有一条记录上面的描叙有:“深口”这个词。 如果用户输入 “深口鞋” 这样该采用那种查询方法要好些,我自己测试了几种 ,但效果都不怎么好 如果:模糊搜索 模糊搜索的话,如果用户输入的中间有一个空格的话,那就不能查询出来 如“深口 鞋”这样就不能查询出来 通配符搜索效果也不加 我是这样想的,把用户输入的词给切词,然后在根据切出来的词(一个集合)先找交集,然后在找并集,最后通通放到set 里面去 但是这样的情况,我必须的查询两次,查询两次而且展示出来的结果也是两种,这样效果太差了 所以想问下,大家如何判断用户输入的关键字哪个是比较重要的 ,还是直接根据用户输入的关键词来查询? 感觉你的思路是正确的, 但是我感觉没有必要求交集合. 你可以先用与模型, 如果与模型搜不出来结果再使用或模型. 1."深口鞋" ==>"深口" "鞋" 2. "深口 鞋" ==>"深口" "鞋" 首先 1 2的切词是相同的. 如果"深口"&"鞋"搜出结果, 则直接返回. 否则再用"深口"|"鞋"模型搜索, 有没有结果都返回. 可以尝试继承 org.apache.lucene.queryParser.QueryParser类来实现. |
|
mniz
2010-04-29
这问题,前几天弄了下,感觉不和人意,效果太差了,所以在进行修改了下
先把“深口鞋”分词切词,然后在用模糊搜索进行查询,利用booleanQuery 进行统一查询 因为查询的结果不准确,在对结果进行处理(细分),根据类别进行分析 和指针搜索的那种情况一样,左边在对结果处理,看到指针搜索那位兄弟的速度非常快, 不知道怎么处理 今天下午研究了下午,找到了一个办法,利用biset进行缓存处理 ,还没有弄完,测试了一把,速度好像没到指针那程度,不知道他怎么实现的 谁如果了解的话,还请分享下。谢谢 |
相关讨论
相关资源推荐
- [网络安全提高篇] 一一三.Powershell恶意代码检测 (1)论文总结及抽象语法树(AST)提取
- [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
- 2020年最值得收藏的60个AI开源工具
- 基于AI的恶意软件分析技术(3)
- JavaScript
- 恶意文档分析技巧及工具快速参考(Cheat Sheet)
- 奇舞周刊第 381 期:2020 年度 JavaScript 现状调查报告
- 揭秘新的供应链攻击:一研究员靠它成功入侵微软、苹果等 35 家科技公司
- [网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
- 研究员在3个微软签名的引导程序中发现UEFI安全引导绕过漏洞