路湘雨伦 2019-12-20 19:08 采纳率: 0%
浏览 691
已结题

solr按指定字符串进行分词,拥有重复值,如何进行完全匹配查询

比如solr里面有几条索引,分别如下:
索引1: A|B|C|A|B|C
索引2: A|A|A|B|B|B
索引3: C|C|C|A|A|A
索引4: A|B|A|B|A|B
...
...
我输入的关键字q为 :A|A|B|B|A|B,按“|”进行分词,分词后的结果为 A,A,B,B,A,B,即3个A,3个B,去solr进行查询,我想把索引当中包含3个A并且是3个B的查询出来,即完全匹配,我想得到的的结果是索引2跟索引4两条结果。可是对于索引1,它分词后为A,B,C,A,B,C,也是会查询出来的,因为它包含了A,B,但是这个不是我想要的结果,我需要的是完全匹配,即结果是3个A跟3个B,并不是包含A跟B,请问有好的解决办法吗?试着用mm=6这个参数,可是结果还是不行。

  • 写回答

2条回答 默认 最新

  • ? ? ? ? ? ? ? 2019-12-20 20:23
    关注

    solr查询,查询配置了查询分词器的字段,默认会对查询关键字做分词处理
    1、如查询关键字F1501ZY000011,使用solr7自带的中文分词器,默认会分词为:f,1501,zy,000011
    2、不使用defType=edismax参数的查询结果
    二、使用参数defType=edismax&mm=100%,指定查询关键字分词后,满足匹配所有
    三、java的solrj中指定defType=edismax参数
    SolrQuery solrQuery = new SolrQuery(q);
    //设置匹配度100%
    solrQuery.set("defType","edismax");
    solrQuery.set("mm","100%");

    ———————————————

    评论

报告相同问题?

悬赏问题

  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题