问题标签 [query-parser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
solr - 将定制的 Lucene QueryParser 部署到 Solr 核心的最简单方法
我通过更改 QueryParser.jj 语法对 Lucene QueryParser 进行了自定义。将其部署到 Solr 的一种方法是通过编译新的 lucene 核心来修改 Solr 战争文件。
另一方面,可以将 Solr 级别的新查询解析器作为二进制依赖项(jar)部署到 Solr 核心的 lib 目录中,这非常方便。
有没有类似的方法来部署我的自定义?我可以将我的 lucene-core 二进制依赖项部署到核心的 lib 目录或 Solr 战争文件以外的其他地方吗?
UPD:对答案的评论包含我实施背后的思考过程。
UPD2:我写了一篇关于我的发现的博客文章:http: //dmitrykan.blogspot.fi/2014/03/implementing-own-luceneqparserplugin.html
java - 在 Elasticsearch 的客户端而不是服务器上分析查询
我们正在将基于 Lucene 的搜索代码库迁移到 Elasticsearch。我们遇到的主要问题是我们应该如何迁移我们QueryParser
的 s.
在我们的旧解决方案中,QueryParsers 接受人工输入的查询字符串,并将其转换为 Lucene 的Query
对象,然后将其输入到 Lucene 的 IndexSearcher。但是,在 Elasticsearch 中,我们不直接与 IndexSearcher 交互,而是只能使用Query DSL在客户端构建查询并将 JSON 发送到 Elasticsearch 服务器。Elasticsearch 服务器然后(可能)重写/分析 JSON 查询以构建 Lucene 查询。
为了利用 QueryParsers 中现有的复杂逻辑,我们决定可以通过以下方式坚持我们的旧方法:
- 明确告诉 Elasticsearch在搜索时间内不要分析任何查询。
- 在 Java 客户端中进行所有与查询相关的分析(标记化、同义词等)。
- 相信 Elasticsearch 的 Query DSL 是一种与 Lucene 的一对一映射
Query
不用担心评分过程,我们将评分器脚本编写为 Elasticsearch 插件。
问题是:
- 这种方法可行吗?
- 这样做的潜在问题是什么?
- 最佳做法是什么?
提前致谢!
lucene - Lucene QueryParser Analyzer 不一致
我有一个非常简单的分析器,它试图用空格替换正斜杠 (/)。因为QueryParser强制我在解析之前用斜杠转义字符串,所以我在分析器中添加了一个MappingCharFilter,用一个空格替换“\/”。分析器定义如下:
然后我在 QueryParser 中使用这个分析器来解析带有破折号的字符串:
预期的输出将是
但是,我得到:
令人费解的是,当我调试分析器时,它正确地标记了输入字符串,返回两个标记而不是一个。
到底是怎么回事?
谢谢。
solr - 具有重复参数的 Solr 查询
我尝试从 Solr 查询解析演示文稿 ( http://www.slideshare.net/erikhatcher/sa-22830939 ) 中“扩展”其中一个示例。我想以一种能够使用查询字符串一次检索多个 solr 文档的方式扩展它http://.../solr/docs?id=1&id=2&id=3
requestHandler 的原始配置如下所示:
但这仅适用于单个id
参数 ( http://.../solr/docs?id=1
) - 我必须使用哪个查询解析器或配置来将其与多个id
参数匹配?
谢谢你的帮助。
sql - 解析查询是什么意思?
大多数关系数据库通过四个步骤处理 JDBC/SQL 查询:
- 解析传入的 SQL 查询
- 编译 SQL 查询
- 规划/优化数据采集路径
- 执行优化查询/获取并返回数据
我想知道“解析传入查询”的真正含义是什么?“计划/优化数据采集路径”是什么意思?
solr - Apache SOLR:在逻辑 AND 上使用标准查询解析器提供额外结果
我在为我的标准查询解析器使用逻辑与时遇到了这个奇怪的问题。我正在查询中搜索术语“steve”和“austin”。我得到了 8 个匹配项,其中只有 2 个包含这两个术语,其余的只包含 steve。仅供参考,我使用 edismax 解析器尝试了相同的查询,它准确地返回了 2 个命中,正如预期的那样。
查询(标准解析器):http://localhost/select?q=all_name:(steve AND austin)&fl=*_name&wt=xml&hl=true&hl.fl=*&hl.simple.pre=<em>&hl.simple.post=</em>&debug=true&indent=true
I am using phonetics on the terms, so terms in highlight do not exactly match steve. I am particularly surprise to see the last result, which lists nothing inside <em> tags.
我尝试突出显示,检查为什么选择了 8 个结果。这是突出显示的输出:
mysql - MYSQL:中间查询结果
是否可以在执行查询期间访问 mysql 生成的中间结果?为查询创建视图存储查询的结果,我需要存储每个查询的中间结果以进一步优化查询。我找不到任何出路。
还有一点我想提取。mysql 为其找到成本并选择最佳计划的候选计划。
我使用了关键字“EXPLAIN”,但它给出了 mysql 用来执行查询的执行计划(考虑到其最小成本),但要求是在选择最佳方案之前找到 mysql 考虑过的所有计划。
我知道这是一个非常广泛的问题,但我找不到任何支持我想做的任务的东西。
lucene - Lucene QueryParser:必须包含其他 MUST 子句中的一个或另一个
如何使用来自 Apache Lucene 的 QueryParser 来生成包含术语 A 或术语 B(或两者,但至少其中一个)的查询。编辑:此外,它还包含其他 MUST 子句,例如,它必须包含 C 并且必须包含 A 或 B。
那么这是正确的吗?
lucene - Lucene QueryParser 或 Query:获取所有有效要求的术语
有没有办法从 Query 实例中获取文档包含有效所需的所有术语?QueryParser 用于创建 Query 实例,因此查询的“内容”是用户驱动的。
例如,用户可以将此作为查询字符串
+A +B
然后我想得到 [A, B] (例如作为字符串数组)
或者
一个
然后只是 [A] 作为我需要的结果。
c# - Lucene 部分解析器(parcer with contains)
我得到了 Lucenes 解析器,它从表中返回了我的评论。它看起来像:
我收到了这样的文字评论:“sometext python sometext”。当我使用 _search("python", "Text") 时,它会返回我的表。但是当我使用 _search("pyth", "Text") 时,它什么也找不到。
我很明确地知道,问题在
但我不知道,我的查询中有问题,或者你应该在搜索器中转移一些参数......有人有什么建议吗?
亲切的问候。