Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Lucene查询来测试文档是否匹配

使用Lucene查询来测试文档是否匹配
EN

Stack Overflow用户
提问于 2019-04-10 11:07:03
回答 1查看 194关注 0票数 2

我正在为一个项目使用Lucene查询,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Analyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser("message", analyzer);
Query log = parser.parse("something OR name=mustafa");

有没有可能将此Query对象与某种Map或POJO一起使用,以测试该对象是否与查询匹配?我知道这不是Lucene的预期用途,它可以在IndexSearcher上工作,但它对我很有用。

举个我想要的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String,Object> a = {"message": "xx", "name": "mustafa"}
Map<String,Object> b = {"message": "xx", "name": "osman"}

SomeSearcher.matches(log, a) == true
SomeSearcher.matches(log, b) == false
EN

回答 1

Stack Overflow用户

发布于 2019-04-10 11:40:42

在我看来,您可以使用org.apache.lucene.store.RAMDirectory

这样,您完全从内存中测试的需求就得到了满足,而且在POC阶段之后,移动到磁盘实现所需的更改也会非常少。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55611052

复制
相关文章
Lucene+Solr+ElasticSearch查询匹配优化
当我们在处理搜索业务时候,需求往往是灵活多变的,有时候我们需要精确匹配,有时候我们又需要全文检索,而有时候,我们又想匹配度高而且还能全文检索,这似乎是精确匹配和模糊匹配一个妥协的策略,没错这就是搜索引擎出现的目的,以往的数据库是没法解决这种问题的,数据库只能回答有,没有,存在,不存在,并不能在有和没有之间做一个完美的妥协,比如说能把最匹配最相关的结果放在topN,仅靠like模糊查询是解决不了这种问题的。 Apache Lucene这个强大的全文检索核心包,提供了搜索引擎的核心组件,通过相关性评分算法
我是攻城师
2018/05/14
1.3K0
Lucene查询语法详解
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询。 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 语句。 单词,例如:"test","hello" 语句,例如:"hello,world!" 多个词语可以通过操作符,连接成更复杂的搜索逻辑。 Field字段查询 Lucene支持针对某个字段进行搜索,语法如: title:hello 或者 title:"hello title" 搜索语句时需要加上双引号,否则
用户1154259
2018/01/17
5K0
Lucene 查询语法备忘
​​https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax​​
保持热爱奔赴山海
2022/07/28
4370
MariaDB 使用正则匹配查询
正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串.例如从一个文本文件中提取电话号码,查找一篇文章中重复的单词或者替换用户输入的某些敏感词语等,这些地方都可以使用正则表达式,正则表达式强大且灵活,可以应用于非常复杂的查询,MySQL中使用REGEXP关键字指定正则表达式的字符匹配模式,先来看一下下表常用的正则规则吧:
微软技术分享
2022/12/28
1.4K0
Lucene:Grouping组查询
lucene的联想词是在org.apache.lucene.lucene-grouping包下边,提供了组查询功能的支持。
HLee
2020/12/31
2.1K0
Lucene:Grouping组查询
快速学习Lucene-Lucene索引库查询
对要搜索的信息创建Query查询对象,Lucene会根据Query查询对象生成最终的查询语法,类似关系数据库Sql语法一样Lucene也有自己的查询语法,
cwl_java
2019/12/25
5420
Lucene范围查询原理(<Lucene6.0)
之前一直想看一下lucene range查询的底层原理, 先上网找了下相关资料, 发现非常混乱, 主要是因为lucene的范围查询曾经经历过两个不同的阶段:
叫我家宝
2022/02/25
1.6K0
Lucene查询过程介绍
“ Lucene索引过程与相关的简介上一篇<Lucene简介与索引过程介绍>我们已经了解过,本篇我们来讲解Lucene查询过程。查询是用户把查询条件获取到目标文档的一个过程。通过用户输入的词Lucene负责匹配相关度最高的文档给予渲染输出。”
CainGao
2020/04/14
5820
Lucene强大的查询引擎
Lucene的主要模块有Analysis模块、Index模块、Store模块、QueryParser模块、Search模块和Similarity模块,各模块的功能分别汇总如下。 ① Analysis模块:主要负责词法分析及语言处理,也就是我们常说的分词,通过该模块可最终形成存储或者搜索的最小单元Term。
院长技术
2021/02/19
3540
使用联接和子查询来查询数据
--Chapter 3 使用联接和子查询来查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4. 等值联接 5. 自联接 */ go /* (二)、使用子查询查询数据 1. 使用比较运算符,IN和EXISTS关键字 2. 使用修改过的比较运算符 3. 使用聚合函数 4. 使用嵌套子查询 5. 使用关联子查询 6. APPLY运算符 */ go /* (三)、管理结
赵腰静
2018/03/09
2.2K0
MongoDB使用find()方法查询文档
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
用户4988376
2021/08/13
9050
使用 querySelector 查询元素时,如何使用正则进行模糊匹配查询?
你好,今天聊一个简单的技术问题,使用 querySelector 方法查询网页上的元素时,如何使用正则进行模糊匹配查询?
LIYI
2023/10/25
1.9K0
使用 querySelector 查询元素时,如何使用正则进行模糊匹配查询?
MongoDB 使用 find() 方法查询文档
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
用户9236362
2021/11/29
9570
MongoDB 查询文档使用 find() 方法。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
用户7639835
2021/12/03
1.4K0
lucene的高效数据查询
lucene是一个常用的并发处理时的全局搜索引擎,它和目前搜索引擎采取的处理大量查询数据的思路都是,事先把跟关键词相匹配数据存储起来,查找的时候直接把存储好的数据进行返回。
Tim在路上
2020/08/04
1K0
使用lucene分词
org.apache.lucene lucene-core 3.6.2 org.apache.lucene lucene-memory 3.6.2 org.apache.lucene lucene-highlighter 3
allsmallpig
2021/02/25
6620
ElasticsearchTemplate的详细使用,完成多条件查询、匹配度查询等
ElasticsearchTemplate是Spring对ES的java api进行的封装,提供了大量的相关的类来完成各种各样的查询。在日常的使用中,应该说最常用的查询就是queryList方法。
天涯泪小武
2019/01/17
15K0
Access不匹配查询
大家好上节介绍了重复项查询,继续介绍选择查询中的不匹配项查询,不匹配查询也是在查询向导中创建。
无言之月
2020/06/04
2K0
Kibana查询语言(KQL)AND、OR匹配,模糊匹配
现在大多数的公司都会使用ELK组合来对日志数据的收集、存储和提供查询服务。ElasticSearch + Logstash+ Kibana。
鱼找水需要时间
2023/02/16
11.6K0
用栈判断是否匹配
写代码的时候用到的括号都是成双成对的出现,并且大小也相同。在集成编辑环境中,IDE就会为我们自己动检查括号是否匹配。那么为了避免在报错,如何判断是否有无括号不匹配?
算法与编程之美
2023/08/22
1790
用栈判断是否匹配

相似问题

测试Lucene查询是否与所有文档匹配

25

Lucene中的匹配无文档查询对象

20

Lucene查询名称与集合匹配的文档

10

是否可以通过匹配项订购lucene文档?

13

Solr / Lucene测试查询没有索引的文档

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文