问题标签 [elasticsearch-analyzers]

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 投票
0 回答
65 浏览

elasticsearch - 如何在以下 Elastic 搜索中添加自动完成功能?

我正在尝试根据用户搜索的内容添加自动完成功能。
目前,我有以下映射:

以下是我用于设置的代码:

这是我想要实现的:我想收集并存储对端点所做的所有查询,并对其使用自动完成功能。例如,迄今为止,所有用户都进行了以下查询 -

现在,如果有人搜索Rea,则应建议以下自动完成查询:

这是基于迄今为止所有用户而不是单个用户所做的搜索。此外,我想分析一下在过去一个月中进行的最热门查询是什么。

我在 AWS Elasticsearch 服务上使用 ElasticSearch 7.1 版。

编辑:由于我的需求发生了一些变化,我已经大大偏离了最初的问题。如果这造成了任何麻烦,我深表歉意。

0 投票
1 回答
462 浏览

elasticsearch - ElasticSearch 术语聚合不适用于自定义分析器和模式标记器

我第一次尝试术语聚合,我使用的自定义模式标记器似乎存在问题。

这是映射:

当我尝试使用聚合 API http://my_server/index_name/_search进行搜索时,结果如下:

正如您所看到的聚合问题。我已经被这个问题困扰了好几天了。我已经看到了很多例子,但仍然无法解决这个问题。请帮忙。提前致谢!!!

编辑!!! 这是@CatalinM 回答后的完整映射:

0 投票
1 回答
1844 浏览

elasticsearch - Elasticsearch“max_ngram_diff”适用于“edge_ngram”但不适用于“ngram_tokenizer”

我有一个我设置的 Elasticsearch 索引"max_ngram_diff": 50,但不知何故,它似​​乎只适用于分edge_ngram词器,但不适用于分ngram词器。

我已经针对同一个 URL 提出了这两个请求http://localhost:9201/index-name/_analyze

请求 1

请求 2

第一个请求返回预期结果:

但是第二个请求只返回这个:

发生了什么,带有标记器的第一个请求可以在和之间有更大edge_ngram的差异,但带有标记器的第二个请求不能?max_grammin_gram1ngram

这是我的映射:

使用的 Elastisearch 版本是7.2.0

谢谢你的帮助!

0 投票
1 回答
1051 浏览

elasticsearch - preserve_original 弹性搜索中的原始令牌

我有一个令牌过滤器和分析器,如下所示。但是,我无法保留原始令牌。例如,如果我_analyze使用这个词 : saint-louis,我只会回来saintlouis,而我希望得到两个saintlouis and saint-louis,因为我有我的preserve_original set to true. 这ES version i am using is 6.3.2 and Lucene version is 7.3.1

0 投票
2 回答
286 浏览

elasticsearch - Elasticsearch analyzer to remove quoted sentences

I'm trying to create an analyzer that would remove (or replace by white/empty space) a quoted sentence within a document.

Such as: this is my \"test document\"

I'd like, for example, the term vector to be: [this, is, my]

0 投票
1 回答
478 浏览

python - Elasticsearch - 使用 Python 使用不同的分析器重新索引单个字段

我在 elasticsearch 中使用动态映射将我的 json 文件加载到 elasticsearch 中,如下所示:

如何更新单个字段的映射?我有title要添加不同分析器的字段。

这失败了。

我知道我无法更新已经存在的索引,但是重新索引从 json 文件生成的映射的正确方法是什么?我的文件有很多字段,手动创建映射/设置会很麻烦。

我可以为查询指定分析器,如下所示:

如何为索引或字段指定它?

我也可以在关闭和打开索引后将分析器设置为设置

复制英语分析仪的确切设置不会为我的数据“激活”它。

https://www.elastic.co/guide/en/elasticsearch/reference/7.6/analysis-lang-analyzer.html#english-analyzer

通过“激活”,我的意思是,搜索不会以英语分析器处理的形式返回,即。仍然有停用词。

0 投票
1 回答
51 浏览

elasticsearch - 将两个单词作为一个单词进行加工

考虑我有一个文档,其中包含以下内容的字段:5W30 QUARTZ INEO MC 3 5L

用户希望能够搜索MC3(无空格)并获取文档;但是,搜索MC 3(带空格)也应该有效。此外,可能存在内容不包含空格的文档,并且在使用空格进行查询时应该找到这些文档。

我尝试了不带空格的索引(例如5W30QUARTZINEOMC35L),但这并没有真正起作用,因为使用通配符搜索我会匹配太多,例如 MC35 也会匹配,我只想匹配两个连接在一起的确切单词(以及确切的单个单词)。

到目前为止,我正在考虑另外索引两个单词的所有组合,例如5W30QUARTZ, QUARTZINEO, INEOMC, MC3, 35L。但是,Elasticsearch 是否有针对此的原生解决方案?

0 投票
1 回答
784 浏览

php - 匹配没有空格的单词以匹配elasticsearch中带空格的文本

问题标题有点误导,但我不知道如何正确表达,但这是我的场景

我在弹性搜索中的产品记录标题中有一个单词Water Wipes(请参阅中间的空格)。现在我需要将它与waterwipes相匹配。因为两者之间没有空格,所以查询waterwipes的结果为零。以下是 Elastic 搜索中的必须匹配查询(我这里使用的是 PHP)

该领域的分析仪是“英语”。我如何匹配诸如Water Wipes for waterwipes 之类的词

0 投票
1 回答
40 浏览

elasticsearch - 应用分析器/过滤器时搜索弹性搜索错误

我已经下载了包含技能分类法的 onet 数据集,并将其上传到弹性搜索中。在技​​能分类中,有一些技能,如 c++、.net、C#。我想给 c# 并且只获得 c# 的技能。通过检查一些链接,我将索引的映射和设置设置如下。

当我使用如下查询时

我正在获得所有具有“c”的技能

当我使用如下查询时假设应用了分析器

我得到空输出。我是否正确包含了分析器,还是我的查询错误?

0 投票
1 回答
625 浏览

elasticsearch - 如何在 Grafana 中实现完全匹配查询

我正在尝试根据下拉列表($Key)中的一些用户选择在 ElasticSearch 索引之上在 Grafana 中实现一些仪表板。我的下拉 Grafana 变量读取$Key,我已经提到query要提取数据,$Key就像fields.key:$Key. 现在我面临的问题是,Grafanaquery string使用analyze_wildcard:true并且我想要exact match,有没有办法在 Grafana 中做到这一点。

在此处输入图像描述