通过对QParser类的继承 实现SOLR 半匹配检索(模糊搜索/模糊检索) (一)

zabbix 监控EMC存储 经过搜索,找到了脚本地址,该项目应该是模板原作者创建的,该项目也有zabbix模板,和上面的应该是相同的,我用的是上面的模板。./unity_get_state.py --api_ip='X.X.X.X' --api_port='443' --api_user='zabbix' --api_password='PASSWORD' --storage_name="zabbix web前端配置的主机名" --discovery。修改权限,给zabbix用户执行权限,模板调用时以zabbix用户执行。 阅读详情

在SOLR应用中,需要支持对指定关键词部分匹配的应用场景

 

如何实现SOLR的模糊检索(半匹配)?

 

何谓模糊检索(半匹配):

 

这种方式是生产环境下经常要使用到的检索方式,通过对命中请求关键词分词后的一个或多个词元的进行检索方式叫做半匹配或模糊匹配,(注意: 这里要与SOLR检索运算符“~” 检索方式区分开)。

 

如用户输入关键词:战争人,但是索引库里收录只有“战争之人”,这时如果输入:

 

name:战争人,想要在索引库里匹配到“战争之人”是不可行的,SOLR定会返回空结果集。

 

一般正常的做法是

 

输入:name:战争 OR name:人

 

这就是SOLR告诉我们的解决办法。

 

看到这里,大家可能就郁闷了,SOLR怎么可能不支持半匹配?用DISMAX啊~~~ ,我也是抱着一线希望查遍了官方WIKI和中英文网站及论坛,也使用了DISMAX的ps(Phrase Slop)参数,但都没有效果。

 

实在没办法,就索性啃起了SOLR的源代码,结果发现默认检索没有使用SCHEMA配置文件中用到的分词解析器!!

最终确定一个方案通过对解析PARSER的改造实现SOLR对中文QUERY自动分词的支持。

 

下面就是SOLR v1.4核心源码的简单表示:

 

//包名:类名:类下面的方法()下一行触发代码所在行号

 

core:SolrCore:execute() 1303

 

handler:RequestHandlerBase:handleRequest()  131

 

handler:SearchHandler:handleRequestBody()  174

 

component:QueryComponent:prepare()  89   

 

search:QParser:getQuery() 129

 

search:LuceneQParserPlugin:parse()   59

 

component:QueryComponent:prepare()  89   

 

handler:SearchHandler:handleRequestBody()  195

 

component:QueryComponent : process() 

 

handler:SearchHandler:handleRequestBody()  195

 

handler: RequestHandlerBase:handleRequest()  131

 

core:SolrCore:execute() 1317

 

servlet:SolrDispatchFilter:doFilter() 246

 

servlet:SolrDispatchFilter:writeResponse()     259

 

 

静态时序分析(Static Timing Analysis, STA):简介及内容导航 静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。 阅读详情

相关推荐

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266

关键词回复中,什么是半匹配和全匹配,他们的区别是什么?

01 全匹配 全匹配是指客户输入的关键词,必须跟你后台设置的关键词一模一样(顺序不能颠倒),才会触发回复内容。 比如:后台设置关键词【公众号类型】,客户只有输入【公众号类型】时才会触发,而输入【公众号的类型】【公众号类型有哪些】【类型公众号】都不会触发。 02 半匹配 半匹配是指客户输入的关键词,必须完全包含你后台设置的关键词(顺序不能颠倒,中间不能加词,只能前后加词)。 比如:后台设置关键词【公众号类型】,客户输入【公众号类型有哪些】【有哪些公众号类型】,都可以被触发,但客户输入【公众号】【类型】【公众号

qq_51772494的博客 5757

RDMA学习笔记-IB五层网络协议和报文结构

Reference InfiniBand Architecture Specification Volume 1, Release 1.3 文章目录IBA 网络协议分层1.链路层1.1 LRH1.2 ICRC1.3 VCRC2.网络层(GRH)3.传输层3.1 BTH3.2 extended transport header4. 报文结构4.1 send request4.2 RDMA Write request4.3 RDMA Read request4.4 ACK4.5 Atomic operatio

u014114310的博客 9469

Solr实现Low Level查询解析(QParser)

Solr基于Lucene提供了方便的查询解析和搜索服务器的功能,可以以插件的方式集成,非常容易的扩展我们自己需要的查询解析方式。其中,Solr内置了一些QParser,对一些没有特殊要求的应用来说,可以直接使用这些查询解析组件,而无需做任何修改,只需要了解这些查询解析组件提供的基本参数(Local Params),就可以实现强大的搜索功能。 对于Solr来说,它的设计目标就是尽可能屏蔽底层Luc

千与的专栏 5316

【算法】图解A* 搜索算法

A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可......

zhuhua造轮子的博客 4万+

保姆级教程:在Windows/Mac上从零部署清华Kronos股票预测模型(含Qlib数据更新避坑指南)

本文提供了一份详细的指南,帮助用户在Windows和Mac系统上从零部署清华Kronos股票预测模型,包括环境配置、模型权重获取、Qlib数据更新避坑等关键步骤。特别针对国内用户遇到的网络问题和数据更新不及时提供了解决方案,适合量化投资和金融科技爱好者快速上手。

weixin_29053577的博客 623

Solr调研总结(很详细很全面)

Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试;两个核心配置文件介绍;维护索引;查询索引,和在查询中可以应用的高亮显示、拼写检查、搜索建议、分组统计、拼音检索等功能的使用方法。 版本 作者/修改人 日期 V1.0 gzk 2013-06-04

生活要继续的专栏 1万+

EDA虚拟机分享2020版本(Synopsys2020)

EDA虚拟机分享

亦安的数字小站 9191

Postgresql-模糊匹配大杀器

# Postgresql-模糊匹配大杀器## 问题背景随着pg越来越强大,abase目前已经升级到5.0(postgresql10.4),目前abase5.0继承了全文检索插件(zhparser),使用全文检索越来越方便。本文会对abase支持的like模糊匹配,全文检索,创建何种索引,如何使用进行说明。针对于各种模糊匹配均可走索引## 前模糊匹配(%xxx),后模糊匹配(xxx%)使用场景:如果...

weixin_30336061的博客 1078

《QGIS快速入门与应用基础》209:重叠标注处理(移除/偏移)

系统讲解了QGIS中处理标注重叠问题的核心方法与实操流程。文章首先阐述了重叠标注处理的底层逻辑,即 先预防、再调整、后兜底 的递进式策略,并详细介绍了设置入口与界面布局。重点讲解了偏移处理这一首选方案,包括基础方向设置、最大偏移距离与步长配置、以及自动换行等进阶优化规则。针对不同要素类型(点、线、面)提供了行业规范的偏移方向设置建议,并给出从稀疏到密集场景的完整参数推荐值。最后以城市POI点图层为例,演示了5步偏移设置流程,帮助用户实现 无重叠、无压盖、重点突出 的专业标注效果。

LuckyHanMo的博客 672

反应动力学仿真软件:Kintecus_(11).数据输入与输出解析

在反应动力学仿真软件的二次开发中,数据输入与输出解析是至关重要的步骤。正确地解析输入数据和生成输出结果不仅能够确保仿真过程的顺利进行,还可以提高仿真的准确性和效率。本节将详细介绍如何在仿真软件中实现数据输入与输出的解析,包括文件格式、数据结构、解析方法以及实际操作示例。

kkchenjj的博客 757

【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组

PostgreSQLDBeaver打开SQL编辑器:输入命令运行即可: (光标选中某行后,按ctrl + enter可以只运行选中SQL)其它安装情况可以参考网上教程如:https://www.kancloud.cn/chunyu/php_basic_knowledge/2280100随后我们查看拓展库是否安装完成: 建表语句有: 随后我们要造假数据,为了合适模糊搜索,最好是随机生成的:随机生成字符串语句如下: 有结果:随机生成中文如下: 有结果:生成随机数组 结合这些方法,我们生成10万条随机假数据插入表

锥栗的博客 5385

基于Python的雪球网投资组合数据爬取与分析实战:从入门到精通

在当今数字化投资时代,数据已成为投资者最重要的资产之一。雪球网作为中国领先的投资社交平台,汇聚了大量优质的投资组合数据,这些数据对于量化投资研究和个人投资决策具有重要价值。本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的雪球网投资组合爬虫,并深入分析获取的数据。投资组合持仓明细及变动历史投资收益率曲线与风险指标投资者操作策略与调仓频率热门行业与个股关注度。

2201_76125261的博客 920

elasticsearch 解决全模糊匹配最佳实践

事件背景:某 CRM 系统,定义了如下两个表:客户表 t_custom字段名类型描述客户产品关系表 t_custom_product字段名类型描述有个页面查询的需求,需要根据手机号模糊匹配,查询出所有匹配上的产品信息。selectfromasleftjoinasonwherelike%#{phone}%过了3年,其中 t_custom 已经有了100w 数据、t_custom_product 有了 1000w 数据,这时候,这条 sql 理所当然成了头号慢 sql。新来的开发 @

半桶水的博客 2609

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

lucene 按照匹配度排序_VLOOKUP教程(连载3)——模糊匹配和精确匹配是什么意思原来一直都弄错了...

一、模糊匹配还是部分匹配通过两个示例来说明部分匹配和模糊匹配是什么意思。示例1.按照简称匹配全称所对应的业务人员姓名,可以使用公式=VLOOKUP("*"&D2&"*",A:B,2,0)完成,如图所示。在第一参数D2的两边连接了通配符,表示从A列找到包含D2内容的数据后,返回B列对应的姓名。查找内容必须是连续的字符,如果是间断的则无法返回正确结果,例如D8单元格中的数据就不能得到正...

weixin_39542608的博客 867

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Mybatis-Plus】使用条件构造器进行各种查询

本文讲解条件构造器的所有常见用法,涵盖各种查询,包括等值查询、包含查询、范围查询、分页查询以及模糊匹配查询。

m0_75276797的博客 1184

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深度解析QMap与QHash

(5)、QHash的键类型必须提供operator == () 和 qHash(key)函数。(3)、QMap中的key类型必须重载operator < (小于操作符)(4)、QHash中的Key对象必须重载全局哈希函数(qHash())(3)、QHash中的Key类型必须重载operator ==(5)、QHash对于Key类型的要求高于QMap。(2)、QHash与QMap遵循了相同的使用接口。(2)、QMap中的键值对根据key进行了排序。(1)、QHash的查找速度明显快于QMap。

hw5230的博客 2703

QML,QT,C++实现模糊查找功能

** QML+C++实现模糊查找功能 ** 由于QML中不能直接实现模糊查找功能,所以功能的是现在后台C++部分实现 在这里介绍一种容器QSet,QSet具有去重的作用,可将在将数据保存到容器的时候将数据中重复的部分删除,也防止在查找的时候出现重复数据 上代码,看备注详解 Q_INVOKABLE QVariantList DataManager::search(QString zoneId) { if (curFiles == nullptr) { return QVariantList(); }

Li丶Chong的博客 2171

正则表达式的两种模糊匹配(横向模糊匹配,纵向模糊匹配)快速理解

在正则表达式中如果都是精准匹配,那么正则表达式也不会这么受大众的追捧,最重要的是它可以模糊匹配,而模糊匹配又分两种 1. 横向模糊匹配(不固定长度) 2. 纵向模糊匹配(固定长度)

weixin_45661396的博客 3214

云开发之模糊搜索的三种方式

文章目录前言和数据库1、模糊搜索的三种方式1.单个字段搜索2.多个字段 或 搜索3.多个字段 且 搜索2、完整代码实例总结 前言和数据库 模糊匹配,如图是数据库中的总数据 1、模糊搜索的三种方式 1.单个字段搜索 使用RegExp方法,红色箭头所指是数据库中的某一条属性,你用哪条属性,匹配的字段则从这条属性中查找。 官方文档中Regexp方法 获取搜索框的值,由用户所输入来进行查找 代码如下(示例): //单个字段搜索 handleSingleField() { //console

BaiShanlxl的博客 5477

Solr QueryParse扩展

默认情况下,Solr查询语法只有两种形式:关键词或者以空格分隔的关键词组。当查询英文时,英文本身就是以空格来区分词的,所以Solr就能直接获取英文词并组装Query;但是中文句子中间没有空格,Solr查询时把整个句子交给Query,然后由Query再按照Field来分词、查询。这样就丧失了DisMax中qf所能带来的好处。          如果能够在用户输入之后,传入DisMax和Quer

云淡风轻,笑看人生 2198

solr中如何定义自己的解析器插件(QParserPlugin)

/*****************************************************/ >solr中如何定义自己的解析器插件 /*****************************************************/ 0.为什么要自定义自己的解析器插件 /*********************************************

zyb243380456的专栏 6070

SolrQParserPlugin 理解内部调用过程

queryParser,是指查询解析器,就是将输入的检索文字以固定的语法格式解析为lucene的查询器(Query)。 自定义solr的queryParser可以参考 http://blog.chenlb.com/2009/02/use-custom-solr-queryparser.html http://blog.chenlb.com/2010/08/solr-use-custo

wenchanter的专栏 1425

解决solr搜索多词匹配度和排序方案

转载请标明出处:http://blog.youkuaiyun.com/hu948162999/article/details/47727159 本文主要介绍了在短语、句子、多词查询中,solr在控制查询命中数量、之后再对结果集进行排序。 在solr中 默认是or 查询,也就是说:如果搜索q 中 分出来的词越多,所匹配的数量也就越多。如:搜索短语 “中国联想笔记本” ,分词结果:中国 、联想 、 笔...

iteye_2022的博客 1789

java 字符串模糊匹配_Java实现伪查询(全匹配+模糊匹配)

Java实现伪查询(全匹配+模糊匹配)在项目中一直习惯了框架下[springboot+mybatis]的增删改查,然后领导突然给了一个需求,让我先弄一些假数据出来,用于页面的展示,业务啥的也没说,咱是啥也不知道,咱也不该问,直接动手吧。(可能到了这里大家会说,不了解需求、业务的情况下就动手写,怕不是个新手吧!在编程一途中,小编的确是个新手,但是这次不一样,这次的业务需求是真没有,不废话了,上代码吧...

weixin_27791839的博客 5943
上一篇: 2009年度中国互联网网站流量排行榜(前20 )(依据ALEXA官方统计)
下一篇: LUCENE 2.9 如何正常读取压缩后的整形,长整形及浮点数值?(解读 Invalid shift value in prefixCoded string 异常)
thundersssss
博客等级 码龄19年 26粉丝 27原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值