lucene.net函数查询的问题

liujiancheng1018 2013-10-22 10:44:22
是这样的,我想实现一个功能,类似百度或者谷歌的搜索,就一个大搜索框,输入一句话,利用盘古分词进行切分,再利用切分后的词去查询索引,按照这句话分出来的词的相关度去排序,将相关度高的排前面,相关度低的往后排。
现在就知道是利用lucene的函数查询,利用得分来进行排序。
盘古分词那个我自己写了一个函数来分词了,能实现,但是具体怎么联系到lucene里面去,还不是很明白。
数据库已经能够读出,并建立索引了。希望大侠们能照顾我这个什么都不知道的菜鸟一下。
因为现在着急弄,希望能多多指点。
求详细的代码。谢谢各位。
...全文
603 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujiancheng1018 2013-10-23
  • 打赏
  • 举报
回复
查询函数将索引中的字符通过某个方法转变为数值,并作为评分来影响查询结果。 复制代码 FieldScoreQuery fsq = new FieldScoreQuery("Uri", FieldScoreQuery.Type.INT);//将Uri列解释为Int CustomScoreQuery csq = new CustomScoreQuery(query, fsq);//合并最初的查询分值与当前分值 TopDocs td = searcher.Search(csq, 10);//搜索 //遍历结果集 for (int i = 0; i < td.totalHits; i++) {   LN.Documents.Document doc = searcher.Doc(td.scoreDocs[i].doc);   results.Add(new Item() { Title = doc.Get("Title"), Summary = doc.Get("Summary"), CreateTime = doc.Get("CreateTime"), Uri = doc.Get("Uri") }); } 这个是您发的那篇文章中的。 CustomScoreQuery csq = new CustomScoreQuery(query, fsq);//合并最初的查询分值与当前分值 是什么意思~? 意思是在最初的LN.Search.Query query = parser.Parse(keyWord);这个时候,就已经有查询分值了么~? 在数据放到 List<Item>中之后, 还是类似二维表的存储形式么?~ 那怎么再用呢?~或者怎么绑定到GRIDVIEW控件~? 求解答
liujiancheng1018 2013-10-23
  • 打赏
  • 举报
回复
没有人会么?~
liujiancheng1018 2013-10-23
  • 打赏
  • 举报
回复
大神们,求救啊。
liujiancheng1018 2013-10-22
  • 打赏
  • 举报
回复
木有人会么?~求帮助啊。。。。真心求帮助啊
liujiancheng1018 2013-10-22
  • 打赏
  • 举报
回复
就是输入一句话,切分词之后,进行搜索。比方说,输入:我们买了面包和牛奶。数据库中可能相关的只有面包、牛奶两个词,但是分词之后是我们/买/了/面包/和/牛奶/ 这样再进去查询,请问怎么去算函数的得分呢?~又怎么按照得分将相关度高的排前面,低的排后面呢?~

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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