https://blog.csdn.net/wohaqiyi/article/details/78402262

solr可以实现多字段匹配查询的结果,即传入一个条件,可以按照你预选设置好的匹配范围去匹配数据,将匹配到的所有数据返回。
比如现在我有如下这样的需求:
  数据库中fbf表中有多个字段,其中有几个中文字段,现在要求传入汉字,对其中的四个中文字段进行全匹配。

solr的实现这种查询我用过的有两种:
第一种:配置的方式解决
1、首先找到我的solrHome下的fbf/conf下,然后找到manage-schema文件,添加一个字段:
<field name="zwpp" type="string" indexed="true" stored="true" multiValued="true"/>
1
  这个zwpp在数据库里是没有的,是我自己随便起的。注意multiValued="true",这个是必须要true。

2.然后在该文件下边再添加如下几行内容:
<copyField source="fbfmc" dest="zwpp"/>
<copyField source="fbfdz" dest="zwpp"/>
<copyField source="fbfdcy" dest="zwpp"/>
<copyField source="fbfdcjs" dest="zwpp"/>
1
2
3
4
  配置完上边这两个配置,然后reload这个core的配置文件,或者重启tomcat即可,然后重新创建一遍fbf的索引。查询后界面是这样的:

  也就是说这种配置会多创建一部分索引,将这4个字段联合起来创建了一个zwpp字段,这个新字段里同时包含这4个字段的值,这种创建索引的方法,我试过了,明显创建索引速度变慢,因为相当与多创建了些索引。

3.这样在查询的时候,就去查询zwpp这个字段,就会同时匹配到4个中文字段的值了。如下:

  这样就实现了只对zwpp一个字段传入查询条件,就实现了对多个字段查询的功能。
这种方式的缺点,我感觉对于solr创建索引的速度有影响,但是查询肯定会快。占用的空间也会大点。

第二种:代码的方式解决
1.这种方式应该是大家推崇的,就是查询的时候AND/OR拼接字符串即可。

2.这种查询最简单,也不用改什么solr的配置,而且也方便修改。
最后大家注意一下:<solrQueryParser defaultOperator="OR"/> 这个配置也是在manage-schema文件里,它的默认配置是OR,可以配置成AND。具体的不同我不明白。先到这里了。

转载于:https://www.cnblogs.com/davidwang456/articles/10491311.html

搜索引擎solr系列---多字段匹配的实现方法相关推荐

  1. 搜索引擎Solr系列(二): Solr6.2.1 从MySql中导入数据

     一:建立MySql测试表,如下图: 二:solr导入配置: 1.新建demo core文件夹,并修改managed-schema里面的配置文件建立索引字段: 2.把mysql-connector-j ...

  2. [摘]全文检索引擎Solr系列—–全文检索基本原理

    原文链接--http://www.importnew.com/12707.html 全文检索引擎Solr系列-–全文检索基本原理 2014/08/18 | 分类: 基础技术, 教程 | 2 条评论 | ...

  3. ElasticSearch 2 (16) - 深入搜索系列之近似度匹配

    ElasticSearch 2 (16) - 深入搜索系列之近似度匹配 摘要 标准的全文搜索使用TF/IDF处理文档.文档里的每个字段或一袋子词.match 查询可以告诉我们哪个袋子里面包含我们搜索的 ...

  4. java 多字段搜索_Elasticsearch系列---多字段搜索

    ### 概要 本篇介绍一下multi_match的best_fields.most_fields和cross_fields三种语法的场景和简单示例. ### 最佳字段 bool查询采取"mo ...

  5. 全文检索引擎Solr系列——Solr核心概念、配置文件

    2019独角兽企业重金招聘Python工程师标准>>> Document Document是Solr索引(动词,indexing)和搜索的最基本单元,它类似于关系数据库表中的一条记录 ...

  6. oracle中同个字段匹配多个like(or关系)实例解决方案

    oracle中同个字段匹配多个like(or关系)实例解决方案 这样一段sql,要查询title这个字段里包含(150,160,85,1x,23,-,98)的数据 SELECTtitleFROMtes ...

  7. pandas 中DataFrame使用:记录抽取,随机抽样,记录合并,字段合并,字段匹配,数据的简单计算

    本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包.测试数据已放云盘:链接:https://pan.baidu.com/s/1zozpY2BUTIvEJKf ...

  8. SQL:对一个字段多条件查询,取交集(对A字段匹配的多个B字段求交集)

    sql示例:同一个表有teach_id和student_id,求同时学过这几个teach课程的学生: select * from table_xxx where teach_id in (1,2,3) ...

  9. 搜索引擎都有哪些关键词匹配方式

    1. 完全匹配 这个应该是很多SEO最熟悉的一种匹配方式了,什么是完全匹配呢?比如说我的关键词是"SEO培训",如果网站中完整的出现了这个词,并且关键词的位置也匹配,这样就是完全匹 ...

最新文章

  1. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来
  2. iOS逆向之深入解析App签名的双向验证机制和原理
  3. 树莓派VNC server设置开机自启动
  4. java实用教程——组件及事件处理——处理事件
  5. MySQL5.6 新特性之GTID【转】
  6. python 从入门到实践 pdf_python入门基础实践课,带你有效的学习python
  7. 核心动画(Core Animation)简介及常规用法
  8. 2021 年百度之星·程序设计大赛 - 复赛 1002 Add or Multiply 1(第2类斯特林数)
  9. Excel用户如何学习数据分析语言DAX?
  10. uva11992-Fast Matrix Operations(区间增值、改值)
  11. 2b青年欢乐多之地铁奇幻记
  12. 文件与文件系统的压缩与打包
  13. ie被hao.360劫持的解决方法
  14. 2022-2028全球阻隔吹膜生产线行业调研及趋势分析报告
  15. 【Agni-s Philosophy】使用的图形技术解说(后篇)Volume渲染和粒子处理
  16. 暂时性死区(TDZ)
  17. RF基础(一) RF内建函数库BuiltIn
  18. js使用input上传文件夹、拖拽上传文件夹并将文件夹结构展示为树形结构
  19. 领导提拔你,还是干掉你,从来都不是看能力!
  20. Polynomial类 多项式

热门文章

  1. oracle tranc,oracle函数trunc的使用
  2. linux获取网卡的ip,Windows和Linux系统下获取多网卡的ip地址
  3. k3运行linux,首个Kubernetes操作系统k3OS,附主要功能介绍
  4. php yaf框架模块化,基于yaf的模块化开发方案
  5. pandas 判断数据表中的缺失值
  6. python 1 2 3怎么拼接所有可能的数_6000字长文,带你用Python完成 “Excel合并(拆分)” 的各种操作!...
  7. pandas DataFrame isin
  8. opencv 高斯模糊
  9. float python_Python中float('INF')的使用
  10. 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)