问题描述
新手,想改一下站内搜索,以前用的是sqlserver的全文索引,想改为lucene.net,建立完了索引,用的是lucene.net2.9.2,配合盘古分词器,能搜,但是结果不是很让人满意。想问下关于如何优化搜索结果的问题举例来说吧,假如我搜“程序员的自我修养”,开头基本还算匹配,一共找出一万多条数据,但是后面的数据,都是匹配一个字的,例如“程序员的自我修养”把“大千的世界无奇不有”也给匹配出来了。也就是“的”字都给匹配出来了有人给我提建议是,接受用户关键字以后,过滤掉某些词性的词,比如“的”属于副词,把副词过滤。如果是过滤就会造成一个问题。例如用户搜索“美妙的平安夜”,如果直接去掉副词,那么相当于用户直接搜索了“美妙平安夜”,这个时候,如果有一个标题是“美妙的平安夜,我真的太爱这个夜了非常爱”,另外一个标题是“好爱平安夜,因为美妙”,实际上,第一个结果是更符合的,因为他直接命中了用户原本输入的六个字,但是因为直接去掉了副词,所以导致了这两句的命中是一样的,这里只是举例,如果去掉更多的词语会更严重。那么各位在站内搜索这块是怎么做的呢?指点一下小弟小弟的想法是,先把用户完整的关键字输入去匹配,然后如果lucene.net提供了吻合度之类的值,或者自己写一个算法判断传回的结果,判断命中的值。但是不知道lucene.net有没有这样的东西提供。还有谁有它的详细开发文档呢?好了,小弟的疑问看起来一堆但是做过的人一眼就知道小弟想问什么。给小弟指个明路,谢谢。指出思路就行。
解决方案
时间: 2024-12-06 07:30:46