作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的索引器对帖子的标题和正文进行索引,但我希望帖子标题中包含的单词具有更大的权重,从而浮到结果的顶部。
如何为标题词添加额外的权重?
最佳答案
您可以在索引期间设置字段提升。这假设您的数据位于两个不同的字段中。如果您想将所有数据存储在一个大的合并字段中,您需要编写一个自定义记分器。
var field = new Field("title", "My title of awesomeness", Field.Store.NO, Field.Index.Analyzed);
field.SetBoost(2.0);
document.Add(field);
要进行搜索,请使用可搜索标题和正文的 BooleanQuery。
var queryText = "where's my awesomeness";
var titleParser = new QueryParser(Version.LUCENE_29, "title", null);
var titleQuery = titleParse.Parse(queryText);
var bodyParser = new QueryParser(Version.LUCENE_29, "body", null);
var bodyQuery = bodyParser.Parse(queryText);
var mergedQuery = new BooleanQuery();
mergedQuery.Add(titleQuery, BooleanClause.Occur.Should);
mergedQuery.Add(bodyQuery, BooleanClause.Occur.Should);
// TODO: Do search with mergedQuery.
关于.net - Lucene.Net:如何为术语添加额外的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566823/
我是一名优秀的程序员,十分优秀!