加权就是有时在搜索的时候,会根据需要的不同,对不同的关键值或者不同的关键索引分配不同的权值,让权值高的内容更容易被用户搜索出来,而且排在前面。为索引域添加权是再创建索引之前,把索引域的权值设置好,这样,在进行搜索时,lucene会对文档进行评分,这个评分机制是跟权值有关的,而且其它情况相同时,权值跟评分是成正相关的。
也就是说,给谁加权,就会给谁评分,评分越高,就越排在最前面。
Document doc=new Document();
doc.add(new StringField("id", ids[i], Field.Store.YES));
doc.add(new StringField("author",authors[i],Field.Store.YES));
doc.add(new StringField("position",positions[i],Field.Store.YES));
// 加权操作
TextField field=new TextField("title", titles[i], Field.Store.YES);
if("boss".equals(positions[i])){
field.setBoost(1.5f);
}
doc.add(field);
doc.add(new TextField("content", contents[i], Field.Store.NO));
writer.addDocument(doc); // 添加文档
Lucene加权搜索机制
本文介绍了Lucene中实现加权搜索的方法,通过为不同字段设置权重,使得搜索结果能够根据预设的重要程度进行排序。具体实现了对于特定职位的文档给予更高的评分,从而提升其在搜索结果中的位置。
415

被折叠的 条评论
为什么被折叠?



