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

2023-11-08

  solr可以实现多字段匹配查询的结果,即传入一个条件,可以按照你预选设置好的匹配范围去匹配数据,将匹配到的所有数据返回。

比如现在我有如下这样的需求:

  数据库中fbf表中有多个字段,其中有几个中文字段,现在要求传入汉字,对其中的四个中文字段进行全匹配。

solr的实现这种查询我用过的有两种:

第一种:配置的方式解决

1、首先找到我的solrHome下的fbf/conf下,然后找到manage-schema文件,添加一个字段:

<field name="zwpp" type="string" indexed="true" stored="true" multiValued="true"/>

  这个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"/>

  配置完上边这两个配置,然后reload这个core的配置文件,或者重启tomcat即可,然后重新创建一遍fbf的索引。查询后界面是这样的:

这里写图片描述

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

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

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

第二种:代码的方式解决

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

这里写图片描述

2.这种查询最简单,也不用改什么solr的配置,而且也方便修改。

最后大家注意一下:<solrQueryParser defaultOperator="OR"/> 这个配置也是在manage-schema文件里,它的默认配置是OR,可以配置成AND。具体的不同我不明白。先到这里了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Unity UGUI 无限循环列表 ----------多功能版

    一共有四种 循环列表 如下图 1 常用循环列表 2 收展嵌套 循环列表 3 弹框 循环列表 4 翻页 循环列表 注意点 1 层次结构如下图 2 Content 和 Item 控件锚点必须为如图 使用方式 只举例常用列表 其他列表查看 GIt
  • JDE(Towards Real-Time Multi-Object Tracking)代码训练——小白必看

    前言 自己在跑JDE多目标跟踪代码时 总结的方法和教训 一 数据集制作 1 可直接下载作者给的数据集 是制作好的 论文链接 https arxiv org pdf 1909 12605v1 pdf 代码链接 https github com
  • 如何使用oracle修改表字段长度

    系列文章目录 ORACLE简介 Oracle是一种关系数据库管理系统 RDBMS 广泛应用于企业应用程序中 它是由甲骨文公司在20世纪70年代末开发的 自此成为世界上最流行的数据库系统之一 Oracle以其可扩展性 可靠性和安全性而闻名 它
  • USB无线网卡的用途及编程实现

    USB无线网卡是一种设备 它可以通过USB接口连接到计算机 并提供无线网络连接功能 在本文中 我们将探讨USB无线网卡的用途以及如何通过编程实现相关功能 用途 提供无线网络连接 USB无线网卡允许计算机通过无线信号连接到网络 这对于那些没有
  • 【Java】------- Base64格式图片保存到服务器文件

    一 使用技术 Java Springboot 二 代码实例 fun base64ToImage base64转成图片格式 提示 data image png base64 的前缀要去掉 param imgBase64 base64 数据 p
  • Griffin 数据管理任务的SQL和原理

    文章目录 各种Measure内部计算原理 accuracy completeness distinct timeliness uniqueness profiling spark sql pre proc Service 任务管理模块 配置
  • JUC常用到的类

    JUC java util concurrent 并发包中包含了许多并发编程中需要用到的类 锁 如ReentratLock ReadWriteLock ReentrantLock重入锁 可以替代synchronized使用 并且有更多强大的
  • 在windows内使用virtualbox搭建安卓x86--以及所遇到的问题解决--3

    一 ARM兼容包的植入 1 下载arm包 2 安装arm兼容包 3 验证arm兼容包是否移植成功 二 触屏无效 三 玩游戏卡顿严重 一 ARM兼容包的植入 在AndroidX86系统内大部分应用 国内 并没有适配X86架构 安装基于arm架
  • Python实验作业

    Python实验作业 1 实验题目 中文数字对照表 输入一个数字 转换成中文数字 比如 1234567890 gt 壹贰叁肆伍陆柒捌玖零 chinese number 零 壹 贰 叁 肆 伍 陆 柒 捌 玖 numeber input 请输
  • Vue-组件

    Vue 组件 组件之间的父子关系 使用组件的三个步骤 私有组件 通过components 注册的是私有子组件 全局组件 在vue 项目的main js 入口文件中 通过Vue component 方法 可以注册全局组件 import Vue
  • 【css面试题】实现2栏布局 右侧自适应; 3栏布局 中间自适应

    2栏布局 右侧自适应 flex grid table float div class son1 div
  • ROS 中写 python 的 roslaunch

    文章目录 1 必看教程 快速入门 1 1 快速入门ROS的视频教程 里面有一节是专门讲 roslaunch 的 https www bilibili com video av59458869 1 2 PDF文档 How to create
  • Chisel(四)Scala语法 操作符

    学习更多相关知识 关注博主知乎账号 用户名Trustintruth https www zhihu com people suo yi xin 90 activities Scala追求的是纯粹的面向对象 不推荐不属于面向对象的基本类型及其
  • UnityShader基础(五)——进阶纹理

    一 立方体纹理 立方体纹理是环境映射的一种实现方式 立方体纹理就是立方体的六个面 每个面有一个纹理 一般用于映射出物体周围环境 和基础纹理不同 采样立方体纹理需要一个三维坐标 而这个三维坐标由一条向量与立方体的交点构成 注意采样时 向量是由
  • 印度黑客号称世界第一,结果第二天被中国黑客干掉了

    以往中国黑客 俄罗斯黑客 美国黑客会不时出现在新闻头条里 但现在印度黑客也开始崛起 成为一股不可忽视的力量 由于历史原因 印度在经济上比较依赖欧美 经济联系也比较紧密 印度人在软件开发上有着语言上的优势 例如一个印度中学生把主要精力花在学软
  • Linux教程之文本处理(sed,xargs,wc)

    Linux教程之文本处理 sed xargs wc 适用于 ubuntu 20 04 ubuntu 20 04 是 西柚云 主要使用的操作系统 西柚云官网 sed sed 可以对文件中的文本内容进行过滤和修改 它的原理是逐行读入文本内容 根
  • Mysql数据库drop表不用跑路,表空间传输助你恢复数据

    今天给大家介绍一种 在Mysql数据库中 利用InnoDb的表空间传输功能 帮助你恢复drop的业务表 Mysql表空间传输限制 要使用Mysql数据库表空间传输功能 有2个限制 1 Mysql数据库版本必须在5 6以上 2 Mysql数据
  • 冒泡法详解

    目录 什么是冒泡法 冒泡法思路 代码的实现 什么是冒泡法 冒泡排序 Bubble Sort 是一种计算机科学领域的较简单的排序算法 这个算法的名字由来是因为越小的元素会经由交换慢慢 浮 到数列的顶端 升序或降序排列 就如同碳酸饮料中二氧化碳
  • 大数据和人工智能关系的基本介绍

    人工智能主要有三个分支 1 基于规则的人工智能 2 无规则 计算机读取大量数据 根据数据的统计 概率分析等方法 进行智能处理的人工智能 3 基于神经元网络的一种深度学习 基于规则的人工智能 在计算机内根据规定的语法结构录入规则 用这些规则进
  • 搜索引擎solr系列---多字段匹配的实现方法

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