比如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这个参数,可是结果还是不行。
solr按指定字符串进行分词,拥有重复值,如何进行完全匹配查询
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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 运筹学排序问题中的在线排序
- ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
- ¥30 求一段fortran代码用IVF编译运行的结果
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题