问题标签 [match-phrase]

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.

0 投票
1 回答
5564 浏览

elasticsearch - 匹配词组前缀查询

我遇到了一个问题,即 elasticsearch 在我的环境(暂存和生产)中返回不同的结果。

我使用的 elasticsearch 版本对于两种环境都是相同的。

这两个环境都具有相同的映射和索引设置。

我有一个标题字段为“test”的项目。我正在尝试执行 match_phrase_prefix 查询。然而,在我的暂存环境中,当我只搜索“te”时,结果会按预期返回。在生产中,我必须将搜索查询扩展到“tes”(3 个字母)来检索文档。

我发出的查询如下:

我可以看到两种环境之间的唯一区别是文档索引的数量。

在我的暂存环境中,我有大约。150k 个文档索引,相当于大约 297M。

在生产中,我有超过 1.2 亿个文档被索引,相当于接近 120GB。

这是一个规模问题,还是我缺少一些弹性搜索设置。就像我说的映射和设置在整个环境中是相同的,所以我在这里有点难过。

0 投票
2 回答
31210 浏览

elasticsearch - Elastic Search 中的多“匹配短语”查询

这对我来说应该很明显,但不是。以下两个匹配仅第二阶段(在这种情况下,Cape Basin

而下面的呱呱叫有错误

我想匹配包含与输入的任何一个 短语完全相同的所有文档。

0 投票
1 回答
497 浏览

elasticsearch - 如何让 Elasticsearch 布尔匹配适用于多个字段

我需要一些专家指导来尝试使布尔匹配正常工作。我希望查询仅“消息”与“密码失败”匹配“路径”与“/var/log/secure”匹配时才返回成功的搜索结果。

这是我的查询:

这是搜索输出的开始:

问题是,如果我将“/var/log/secure”更改为“var”,然后运行查询,我仍然会得到结果,只是分数较低。我理解 bool...must 构造意味着这里的两个匹配项都需要成功。如果“路径”与“/var/log/secure”不完全匹配,我所追求的是没有结果......

我检查了这些字段的映射以检查它们是否未被分析:

我认为这些字段没有被分析,所以我相信搜索也不会被分析(基于我最近从 elasticsearch 阅读的一些培训文档)。以下是此索引的输出 _mapping 的片段。

我哪里错了,或者我在这里误解了什么?

0 投票
1 回答
346 浏览

elasticsearch - Elasticsearch 修剪建议

有人知道如何从建议结果集中过滤拼写错误吗?

此查询找到好的建议,但也包括部分拼写错误。例如,“商业抵押”返回“商业抵押”,这很好,但“商业抵押”也返回“商业抵押”,因为商业条款仍然是错误的。

这返回

“comercial [em]mortgage[/em]”的 collat​​e_match 是 true,即使这个确切的短语没有出现在任何文档标题中。

分数非常低且非常相似,因此我无法按分数进行过滤。

目前它在最后一页上看起来还不错,因为我使用了一些 javascript 来仅显示被 [em/] 标签包围的结果,但这是一个 hack,不是很好。

elasticsearch 的版本是 1.5.3,但我们可能会很快升级,所以我不能在建议中使用过滤器。

有谁知道如何过滤/修剪 title.raw 字段中不存在的任何建议?

谢谢。

0 投票
0 回答
105 浏览

elasticsearch - 弹性搜索 Match_phrase 未给出确定性结果

我已经通过以下方式定义了映射。

我正在执行以下查询

它仍然只为 onkar 提供结果。不评估完整的搜索字符串。有谁能够帮我 ???

0 投票
1 回答
2628 浏览

elasticsearch - 使用嵌套将短语查询与弹性搜索中的多个字段匹配

我正在尝试使用匹配短语进行查询,但在多个字段上进行查询,但我的嵌套允许我只在一个字段上进行查询这是我的代码片段

我在课堂文档中有多个字段,我也想搜索这些字段。

请帮助我 - 在此先感谢!

0 投票
1 回答
1826 浏览

python - 在行内搜索特定的短语模式。Python

我已经制定了一些我需要在文件中搜索的规则。这些规则本质上是包含未知数量单词的短语。例如,

mutant...causes(...)GS

在这里,这是一个短语,我想在我的文件中搜索。意味着这里...应该有几个词(即在这个间隙中)&(...)意味着在这个间隙中可能/可能没有单词。GS这是我知道的固定字符串变量。

基本上,我通过浏览许多此类文件来制定这些规则,它们告诉我特定文件可以满足我的要求。

问题是间隙可以有任何(少量)单词。甚至可以有一条新线从其中一个间隙开始。因此,我不能进行相同的字符串匹配。

一些示例文本 -

  1. !Series_summary "To better understand how the expression of a *mutant gene that causes ALS* can perturb the normal phenotype of astrocytes, and to identify genes that may

此处的 GS 是 ALS(已定义),并且应将加星标的文本作为规则的正匹配找到mutant...causes(...)GS

  1. !Series_overall_design "The analysis includes 9 samples of genomic DNA from isolated splenic CD11c+ dendritic cells (>95% pure) per group. The two groups are neonates born to mothers with *induced allergy to ovalbumin*, and normal control neonates. All neonates are genetically and environmentally identical, and allergen-naive."

这里的 GS 是卵清蛋白(已定义),加星标的文本应该是规则的正匹配 induced...to GS

我是python编程的初学者,所以任何帮助都会很棒!

0 投票
1 回答
729 浏览

elasticsearch - 如何提升短语匹配但仅在特定领域?

我想通过匹配短语来提升查询,但我希望它只在某个字段中搜索。到目前为止,我有以下查询

但这会返回几个结果,因为我没有指定它应该搜索的字段。我尝试了另一种方法:

但我得到了错误

[匹配] 查询不支持 [字段]]

0 投票
0 回答
1516 浏览

elasticsearch - 在 Elasticsearch Java API 中使用 slop 维护匹配短语查询的序列顺序

我正在尝试做一个应该类似于短语查询的查询,除了连续标记内可能存在间隙。例子:

短语查询确保仅在不使用 slop 值时才会保留订单。一旦我添加了一些 slop 值(2、3 等),它就会开始破坏顺序,并且具有足够大的 slop 值,它可能只是弹性搜索文档中提到的正常匹配查询。

请注意,我使用的是 AND 运算符,因此必须存在所有搜索标记。

是否可以在 Elasticsearch 中进行这样的查询?

[编辑] 至于被标记为与问题重复,我正在为我的项目使用 spring-data-elasticsearch,并且堆栈溢出问题没有与 spring-data elasticsearch java-api 相关的答案(最好是 ElasticsearchTemplate)。

0 投票
0 回答
448 浏览

java - 倒排索引中的短语搜索

我正在实现一个非常基本的倒排索引,并且在实现短语搜索方法时遇到了麻烦。

我有以下结构:

InvertedIndex.java:这里我有一个数据结构:

我在其中存储一个单词和一个包含文档中所有 docId 和相关术语位置的发布列表。

我的 Postings.java 类具有以下结构:

我有所有这些数据结构的 getter 和 setter,所以我不包括它们,因为这对这篇文章来说太多了。该字符串是 docId,而 Arraylist 保存一个单词在文档中的所有位置。

我有一个类,我正在实现以下按短语搜索的方法:

我知道在这种方法中,我必须检查位置是否彼此相距一个点。我还没有实现它,因为我希望首先能够找到相同的文档(目前还没有这样做)。当我运行它时,我什么也得不到,而且我有各种我知道的共享单词的文档。

我希望这种方法能够搜索各种大小的术语(“hello world”、“非常感谢您的帮助”等......)。我觉得我把这件事复杂化了,但我对如何解决它非常迷茫。任何建议,将不胜感激。