Lucene.Net:我怎样才能给一个术语增加额外的权重?

Lucene.Net:我怎样才能给一个术语增加额外的权重?,.net,lucene.net,.net,Lucene.net,我的索引器为一篇文章的标题和正文编制索引,但我希望文章标题中包含的单词更具权重,从而浮到结果的顶部 如何为标题词添加额外的权重?您可以在索引期间设置字段增强。这假设您的数据位于两个不同的字段中。如果要将所有数据存储在一个大的合并字段中,则需要编写自定义记分器 var field = new Field("title", "My title of awesomeness", Field.Store.NO, Field.Index.Analyzed); field.SetBoost(2.0); do

我的索引器为一篇文章的标题和正文编制索引,但我希望文章标题中包含的单词更具权重,从而浮到结果的顶部


如何为标题词添加额外的权重?

您可以在索引期间设置字段增强。这假设您的数据位于两个不同的字段中。如果要将所有数据存储在一个大的合并字段中,则需要编写自定义记分器

var field = new Field("title", "My title of awesomeness", Field.Store.NO, Field.Index.Analyzed);
field.SetBoost(2.0);
document.Add(field);
要进行搜索,请使用同时搜索标题和正文的布尔查询

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.