首页 > 其他 > 详细

07.设置相关度

时间:2017-02-28 13:41:02      阅读:144      评论:0      收藏:0      [点我收藏+]

为什么要设置相关度

设置相关读可以人为的影响搜索结果的排序,通过设置某一个域的boost,可以在同时出现多条匹配结果时提升排名。通过设置boost影响打分结果,boost是一个加权值(默认加权值为1.0f),它可以影响权重的计算。

设置相关度的时机

1.建立索引时设置

提升某个Document的权重,类似于竞价排名

  1. if(file_name.equals("springmvc.txt")){
  2. //设置比默认值 1.0大的
  3. field_file_content.setBoost(20.0f);
  4. }
  5. if(file_name.equals("spring_README.txt")){
  6. //设置比默认值 1.0大的
  7. field_file_content.setBoost(30.0f);
  8. }
  9. //向文档中添加Field
  10. document.add(field_file_content);

2.查询索引时设置

可以提高某个域的权重,例如seo中h1标题的权重较大

  1. //设置评分,文件名称中包括关键字的评分高
  2. Map<String,Float> boosts = new HashMap<String,Float>();
  3. boosts.put("file_name", 30.0f);
  4. // 创建查询解析器
  5. QueryParser queryParser = new MultiFieldQueryParser(fields,new StandardAnalyzer(),boosts);
  6. // 查询文件名、文件内容中包括“java”关键字的文档
  7. Query query = queryParser.parse("springmvc.txt");
  8. TopDocs topDocs = indexSearcher.search(query, 100);
  9. ScoreDoc[] scoreDocs = topDocs.scoreDocs;

07.设置相关度

原文:http://www.cnblogs.com/wesly186/p/2b2074121ad43695bb61950c10902504.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!