Lucene做的搜索,为什么搜索结果是这样的?

iuhxq 2009-06-25 07:10:14
我搜索“手机网站”
得到的结果必须包含“手机网站”才会返回。
只包含“手机”或者“网站”不返回。不是已经分词了吗?

另外如果我搜索“手机 网站”则包含“手机”或者“网站”都返回了。
...全文
128 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
美丽海洋 2010-04-20
  • 打赏
  • 举报
回复
用lucene的standardAnalyzer来分词索引,
检索“手机网站”,检索结果中就是包含手机网站的才出现;
检索“手机 网站”,检索结果中包含手机或是手机网站;
在检索关键字中空格代表”或“
nutian 2009-07-08
  • 打赏
  • 举报
回复
本来想给你解答的,突然发现已经结贴了,那就算了,自己好好看看查询表达式吧!
yan286093636 2009-06-27
  • 打赏
  • 举报
回复
关注中............
iuhxq 2009-06-27
  • 打赏
  • 举报
回复
也许就应该是这样的。
iuhxq 2009-06-26
  • 打赏
  • 举报
回复
还有人会吗?
leoliu 2009-06-25
  • 打赏
  • 举报
回复
lucene是没有分词的,LZ如果需要分词,需要使用其它分词算法。
iuhxq 2009-06-25
  • 打赏
  • 举报
回复
回叶子:

我觉得不像是分词问题。

调试时,搜索“手机网站”得到query变量为:“{title:"手机 网站" keywords:"手机 网站" description:"手机 网站"}”
如果搜索“手机 网站”监测到query变量为:“{(title:手机 title:网站) (keywords:手机 keywords:网站) (description:手机 description:网站)}”
me_loong 2009-06-25
  • 打赏
  • 举报
回复
应该是分词的问题
syjwbl 2009-06-25
  • 打赏
  • 举报
回复
不懂,学习
wangan2008 2009-06-25
  • 打赏
  • 举报
回复
up
叶子 2009-06-25
  • 打赏
  • 举报
回复

查看Lucene分词器分词后的结果
http://stta04.javaeye.com/blog/377688
叶子 2009-06-25
  • 打赏
  • 举报
回复
应该是没有做分词处理,或是没有正确分词。

分词技术,有所谓的正向匹配,反向匹配,还有最大或最小一个程度的区别。

分词中的难题。

有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程中,有两大难题一直没有完全突破。
歧义识别。
歧义是指同样的一句话,可能有两种或者更多的切分方法。例如:表面的,因为「表面」和「面的」都是词,那么这个短语就可以分成「表面 的」和「表 面的」。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的「和服」的例子,其实就是因为交叉歧义引起的错误。「化妆和服装」可以分成「化妆 和 服装」或者「化妆 和服 装」。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。
交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必需根据整个句子来判断了。例如,在句子「这个门把手坏了」中,「把手」是个词,但在句子「请把手拿开」中,「把手」就不是一个词;在句子「将军任命了一名中将」中,「中将」是个词,但在句子「产量三年中将增长两倍」中,「中将」就不再是词。这些词计算机又如何去识别?

如果交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。例如:「乒乓球拍卖完了」,可以切分成「乒乓 球拍 卖 完 了」、也可切分成「乒乓球 拍卖 完 了」,如果没有上下文其他的句子,恐怕谁也不知道「拍卖」在这里算不算一个词。

新词识别。
新词,专业术语称为未登录词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解句子「王军虎去广州了」中,「王军虎」是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把「王军虎」做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子「王军虎头虎脑的」中,「王军虎」还能不能算词?
新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。




yanm7788 2009-06-25
  • 打赏
  • 举报
回复
看到过别人用的Lucene做的搜索,不懂来学习
iuhxq 2009-06-25
  • 打赏
  • 举报
回复
但是去百度搜索一句话,就比如:“但是去百度搜索一句话”
虽然网上没有这句话,但是类似的话有的。就是模糊搜索。
wklilong 2009-06-25
  • 打赏
  • 举报
回复
如果 你搜索 手机 把 手机网站的 内容出来了 这才出现了问题
wklilong 2009-06-25
  • 打赏
  • 举报
回复
在lucene中 空格 键 好像能起到或的作用那种
你说的问题我有点没看明白

手机网站 和 手机 或 网站
正常的就应该是 搜索 手机 或 网站 会把手机网站里的内容都搜索出来
因为 搜索 手机 手机网站里包含手机 肯定出来

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧