问题标签 [elasticsearch-highlight]

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 回答
1707 浏览

elasticsearch - spring data 弹性搜索高亮文本

我正在使用 Spring Data Elastic Search 从弹性搜索数据库中进行查询。

我需要在搜索结果中突出显示并显示搜索到的文本。

我的设置如下

但是作为搜索结果返回的数据没有突出显示。

0 投票
0 回答
62 浏览

elasticsearch - ElasticSearch 突出显示为带有结果参数的锚点

我想通过<a>带有属性结果参数的 html 标记突出显示 ElasticSearch 查询的结果href

高亮查询示例:

在此示例中,我想将字段用作tag 属性内的Number查询字符串的值。nohref<a>

怎么可能?

0 投票
1 回答
132 浏览

elasticsearch - 突出显示从自定义“_all”字段获取的结果中的数字字段

我是 Elasticsearch 的新手。我们有一些不同数据类型的数据要索引和检索。我们正在使用自定义“_all”字段,如下面的链接中所述

自定义“_all”字段

以下是我们的代码

用于创建索引

添加到索引

搜索

使用上述查询,我​​们能够获取结果,但无法突出显示原始字段值,如以下链接中所述

突出显示原始字段

需要知道我们是否做错了什么或是否有错误

请注意,我们必须使用自定义“_all”字段,因为它对我们的要求很重要。此外,不能更改字段的数据类型。

非常感谢

0 投票
1 回答
250 浏览

elasticsearch - Elasticsearch 多匹配评分基于匹配亮点的数量

我正在使用以下查询对象进行多重匹配搜索script_score

我希望结果按其突出显示匹配的数量排序。例如,第一条记录将有 5 个< em >,第二条记录将有 4 个< em >匹配,依此类推。目前我的结果不是这样排序的。

elasticsearch.config.ts

样本数据

0 投票
0 回答
140 浏览

elasticsearch - Elasticsearch 从突出显示中排除“停止”词

我想从突出显示中排除默认停用词,但我不确定为什么这不起作用

ES 配置

字段映射:

高亮查询:

目前,我在叙述字段中突出显示了停用词,例如this, AIS我想防止这种情况发生。

0 投票
0 回答
23 浏览

elasticsearch - 使用 Elasticsearch 索引 openxml 结构化文档

我们有一组结构化的文档。该结构受到openxml 数据模型的极大启发。简而言之,文档由一组有序的段落组成,每个段落本身都有 id 和一组有序的运行,每个运行都有文本内容和一些元数据。

例如,以下示例文档包含两个 ["Lorem i psu m" , "dolor sit amet"] 段落。

当然,我们希望通过 Elasticsearch 索引文档,使其能够回答以下查询:

  1. 询问:dolor sit

    预期答案:in the document with title="De finibus", in the paragraph with id=2, from the 1th character of the 1s run to the 9th character of the 1rd run

  2. 询问:ipsum

    预期答案:in the document with title="De finibus", in the paragraph with id=1, from the 7th character of the 1s run to the 1st character of the 3rd run

  3. 询问:ipsum dolor

    预期答案:in the document with title="De finibus", from the 7th character of the 1s run of the paragraph with id=1 to the 5th character of the 1rd run of the paragraph with id=2

我熟悉弹性中的嵌套字段。它可能满足第一个查询。但是我们应该如何映射我们的文档以将连续的运行和段落连接在一起并灵活地回答后面的两个查询?

0 投票
1 回答
416 浏览

python - 使用 Elasticsearch,我可以为不同的匹配标记使用不同的 HTML 标签突出显示吗?

目前正在学习 ES,但我非常热衷于实现这一点。

我知道您可以使用查询中的和键来突出显示具有不同标签的不同字段......但是是否可以提供一个标记的字符串,其中返回的片段对于每个单独的识别单词都有不同的 HTML 颜色标签,例如使用简单的查询字符串pre_tagspost_tagshighlight

所以我用“有趣的数据”查询并返回一个文档字段,如下所示:

我得到的不仅仅是标签“无意识地”交替:同样,您可以使用Fast Vector Highlighter,例如:

相反,我想要这个领域

“另一个数据日数据正在穿过一些有趣的树林,数据对一些数据有一个有趣的想法”

如此返回:

我以前使用Lucene(即Java)进行编码,并且我确实设法实现了这种事情,主要是跳过箍。

注意,对此的一个答案可能是“忘记 ES 返回标记的文本,只需使用re.sub( r'\bdata\b', '<font color="red">data</font>', field_string )”应用您自己的标签。

这对于像这样的简单用例来说是可以的。但它不适用于词干分析器。例如,举一个法语例子:搜索查询是“changer élément”。我想要以下标记结果:

即“changer”、“changes”和“changement”都源于“chang”,“élément”和“éléments”都源于“element”。因此,该字段的标准突出显示返回将是:

0 投票
1 回答
46 浏览

elasticsearch - Elasticsearch 未返回预期结果

在此处输入图像描述想知道是否有人可以帮助我,我在弹性上执行搜索时遇到问题,搜索本身非常简单,但是对于某些特定单词,尽管它们存在于预期的文档中,但未检索到命中。

这是我想要的注册表:

当我执行搜索时

它返回结果

但是,当我执行类似的搜索时:

它返回

还有更多带有 95/2000 的条目,它们甚至没有出现在热门歌曲中。

我是 Elastic 的新手,所以这可能是一个简单的修复,但我几乎尝试了 API 中的所有搜索,并构建了不同的分析器,但没有成功。如果有人可以帮助我,我将感激不尽。

谢谢你们

0 投票
0 回答
20 浏览

elasticsearch - Elasticsearch 6.0.1 版中的突出显示行为

我在弹性搜索中遇到了这个我无法解释的问题。有时会出现突出显示,但有时不会出现。以下是通过 kibana 重现它的方法。我的索引和映射 -

插入样本数据

以下查询(查询 1 和查询 2)不返回突出显示。请注意我有一个更大的查询。我在这里只粘贴其中的一部分。

查询 1:require_field_match: truefields: ["packages.*"]。输出 - 没有突出显示

查询 2:require_field_match: falsefields: ["packages.*"]。输出 - 没有突出显示

仅在require_field_match : false和 I REMOVE line "fields": ["packages.*"]是亮点出现的情况下:查询 3

突出显示的块:

谁能解释一下这种行为?将 require_field_match 设置为 false 也应该返回查询 2 中的突出显示。“字段”列和“require_field_match”以什么方式影响这种行为?

0 投票
0 回答
54 浏览

elasticsearch - ElasticSearch 使用 edge_ngram 模糊搜索突出显示额外的字母

我正在构建一个具有键入时自动完成功能的搜索 UI。为了实现这一点,我在 ElasticSearch 7.10 中创建了一个索引,并在name字段上使用了 edge_ngram 标记器和分析器:

在每个结果中,我想突出显示结果中与用户迄今为止输入的内容相匹配的部分。我使查询变得模糊,以确保即使用户犯了错字或拼写错误,我们仍然会显示相关结果。不幸的是,这似乎有一个不幸的副作用,即导致突出显示不应该的额外字母。例如,以下查询:

产生以下结果:

如您所见,Anxi尽管用户只输入anx了内容,但 ElasticSearch 仍在突出显示 -i不应该是突出显示的一部分。我认为这是因为查询的模糊性导致在ngram上anx匹配。anxi我的期望是anxngram 上的匹配会得分更高,因为它是完全匹配的,因此只会Anx在结果中突出显示。为什么这没有发生?我能做些什么来解决这个问题?

编辑:我尝试使用explain: true. 奇怪的是,anxngram 似乎确实比anxingram 得分更高,但anxingram 仍然是突出显示的:

(为简洁起见省略了不必要的细节)

为什么 ngram 荧光笔似乎突出显示最长的 ngram 而不是得分最高的 ngram?有没有我可以修改的设置来改变这种行为?

plain和荧光笔都unified以上述方式运行。尝试使用fvh荧光笔会导致突出显示的字母太少而不是太多。在上面的示例中,fvh荧光笔突出显示An. anxiety此外,当使用fvh荧光笔对整个单词运行查询时,它只会突出显示ngram 得分高于匹配的两个较短 ngramAnxie的事实。anxiety