Lucene的问题

zjkida 2011-06-16 02:09:55
目的: 想更新索引
做法: 1、通过IndexSearch.search(new TermQuery(...))获得Document
2、遍历Document.Fields如果Fields符合要求则根据要求修改

问题出在做法2上, 原Document有一个{Store.No, Index.Tokenized}的域, 而在搜索出来的Document中无法获得该域;那么假定我需要对这个域进行修改比如说重新设置权重?该如何做呢?!

不胜感谢!期待高手....
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjkida 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shirdrn 的回复:]

那个Field你都没有存储,怎么可能拿到他的内容呢

[/Quote]

谢谢答复,Lucence我不是很熟,在网上找了资料查到对于没有存储的Field,也是可以在topDoc里获取内容的。
千与 2011-09-24
  • 打赏
  • 举报
回复
那个Field你都没有存储,怎么可能拿到他的内容呢
你说的是想改变这个Field的相关参数,像权重等影响得分,这个你要理解下面两个概念:
1、Lucene的index-time:在索引的时候,你设置的一些参数,如document boost、Field boost、还有就是是否存储、是否分词等,这些在查询的过程是无法改变的,即是静态的
2、Lucene的search-time:在查询时,对于权重是可以动态改变的,比如我觉得title比content更重要,则查询时可以类似这样
title:标题^5.0 AND content:内容^1.2
这样,在lucene查询的时候,每个匹配上document在算得分的时候,会把标题的boost=5.0乘进去,自然那个document的得分就上去了,排序靠前了
sssssnake 2011-06-19
  • 打赏
  • 举报
回复
重新生成索引吧

2,760

社区成员

发帖
与我相关
我的任务
社区描述
搜索引擎的服务器通过网络搜索软件或网络登录等方式,将Internet上大量网站的页面信息收集到本地,经过加工处理建立信息数据库和索引数据库。
社区管理员
  • 搜索引擎技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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