solr权重

小灰灰 2022-08-09 09:15 267阅读 0赞

solr权重可以在solrconfig.xml配置,也可以用solrJ直接实现,本人用的是第二种方法,demo比较简单,但是可以看出流程和结果

第一步:先往索引库里添加数据,我这里只添加五条,不要问为什么

  1. for(int i=0;i<5;i++){
  2. //添加数据
  3. SolrInputDocument doc1 = new SolrInputDocument();
  4. doc1.setField("id", Integer.valueOf(i));
  5. doc1.setField("title","一"+Integer.valueOf(i));
  6. doc1.setField("price", "1000"+Integer.valueOf(i*200));
  7. try {
  8. solrServer.add(doc1);
  9. solrServer.commit();
  10. } catch (Exception e1) {
  11. // TODO Auto-generated catch block
  12. e1.printStackTrace();
  13. }
  14. }

第二部:直接看代码

  1. SolrQuery sq=new SolrQuery();
  2. sq.set("q", "title:一");//必须有,并且不可以是*:*,
  3. sq.set("defType","dismax");
  4. sq.set("qf","title^1 price^0.1");//这里必须包含查询条件title
  5. sq.set("bf", "sum(abs(price))");<span style="font-family: Arial, Helvetica, sans-serif;">//这里我用的是最简单的一个函数,其实核心在这里,真正运用不会这么简单,具体请搜索solr权重函数</span>
  6. //sq.addSort("updateTime", ORDER.desc);
  7. //getHighlight(sq);
  8. QueryResponse sr;
  9. try {
  10. SolrInputDocument doc = new SolrInputDocument();
  11. //SolrInputField a = doc.getField("");
  12. sr = solrServer.query(sq);
  13. SolrDocumentList doclist=sr.getResults();
  14. Map<String,Map<String,List<String>>> highlightMap=sr.getHighlighting();
  15. //计数器
  16. int i=0;
  17. for (SolrDocument solrDocument : doclist) {
  18. System.out.println("标题:" +solrDocument.get("title")+"\n\n");
  19. if(highlightMap.get(solrDocument.get("id")).get("price")==null){
  20. System.out.println("正文:" +solrDocument.get("price")+"\n\n");
  21. }
  22. ++i;
  23. }
  24. System.out.println(i+"个");
  25. } catch (SolrServerException e) {
  26. e.printStackTrace();
  27. }

目前的demo还有一点bug,就是进首页,如果找到解决方案我会来更新。

看一下结果吧:很大不同

这是没有权重排序的结果

  1. 标题:一0
  2. 正文:10000.0
  3. 标题:一1
  4. 正文:1000200.0
  5. 标题:一2
  6. 正文:1000400.0
  7. 标题:一3
  8. 正文:1000600.0
  9. 标题:一4
  10. 正文:1000800.0
  11. 5

这是有权重排序的结果

  1. 标题:一4
  2. 正文:1000800.0
  3. 标题:一3
  4. 正文:1000600.0
  5. 标题:一2
  6. 正文:1000400.0
  7. 标题:一1
  8. 正文:1000200.0
  9. 标题:一0
  10. 正文:10000.0
  11. 5

发表评论

表情:
评论列表 (有 0 条评论,267人围观)

还没有评论,来说两句吧...

相关阅读

    相关 css

    css权重 !important                                                                     

    相关 CSS

    > 编辑推荐: [掘金][Link 1]是一个高质量的技术社区,从 CSS 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货。 [点击链接][Link

    相关 solr

    solr权重可以在solrconfig.xml配置,也可以用solrJ直接实现,本人用的是第二种方法,demo比较简单,但是可以看出流程和结果 第一步:先往索引库里添加数据,

    相关 Dubbo配置

    权重配置 可以直接在服务提供者,配置权重 也可以在管控台,配置权重 服务器提供者 在暴露服务的时候,配置权重 缺点,这样写权重就固定了 实际,都是动态的

    相关 确定方法

    我们做数据分析的时候可往往会遇到权重问题,那我们该采用什么样的方法来确定权重呢?方法其实有很多,比如专家访谈法、德德尔菲法,层次分析法、主成分分析法、因子分析法、回归分析法等,