07.设置相关度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07.设置相关度相关的知识,希望对你有一定的参考价值。

为什么要设置相关度

设置相关读可以人为的影响搜索结果的排序,通过设置某一个域的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.设置相关度的主要内容,如果未能解决你的问题,请参考以下文章

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

iOS 相当于 Android 片段/布局

如何在android的片段中设置应用程序上下文?

如何在片段而不是活动中使用 setContentView

设置和获取与执行环境相关的信息?

尝试使用片段保存夜间模式状态