问题标签 [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.
elasticsearch - 如何在以下 Elastic 搜索中添加自动完成功能?
我正在尝试根据用户搜索的内容添加自动完成功能。
目前,我有以下映射:
以下是我用于设置的代码:
这是我想要实现的:我想收集并存储对端点所做的所有查询,并对其使用自动完成功能。例如,迄今为止,所有用户都进行了以下查询 -
现在,如果有人搜索Rea
,则应建议以下自动完成查询:
这是基于迄今为止所有用户而不是单个用户所做的搜索。此外,我想分析一下在过去一个月中进行的最热门查询是什么。
我在 AWS Elasticsearch 服务上使用 ElasticSearch 7.1 版。
编辑:由于我的需求发生了一些变化,我已经大大偏离了最初的问题。如果这造成了任何麻烦,我深表歉意。
elasticsearch - ElasticSearch 术语聚合不适用于自定义分析器和模式标记器
我第一次尝试术语聚合,我使用的自定义模式标记器似乎存在问题。
这是映射:
当我尝试使用聚合 API http://my_server/index_name/_search进行搜索时,结果如下:
正如您所看到的聚合问题。我已经被这个问题困扰了好几天了。我已经看到了很多例子,但仍然无法解决这个问题。请帮忙。提前致谢!!!
编辑!!! 这是@CatalinM 回答后的完整映射:
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_gram
min_gram
1
ngram
这是我的映射:
使用的 Elastisearch 版本是7.2.0
谢谢你的帮助!
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
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]
python - Elasticsearch - 使用 Python 使用不同的分析器重新索引单个字段
我在 elasticsearch 中使用动态映射将我的 json 文件加载到 elasticsearch 中,如下所示:
如何更新单个字段的映射?我有title
要添加不同分析器的字段。
这失败了。
我知道我无法更新已经存在的索引,但是重新索引从 json 文件生成的映射的正确方法是什么?我的文件有很多字段,手动创建映射/设置会很麻烦。
我可以为查询指定分析器,如下所示:
如何为索引或字段指定它?
我也可以在关闭和打开索引后将分析器设置为设置
复制英语分析仪的确切设置不会为我的数据“激活”它。
通过“激活”,我的意思是,搜索不会以英语分析器处理的形式返回,即。仍然有停用词。
elasticsearch - 将两个单词作为一个单词进行加工
考虑我有一个文档,其中包含以下内容的字段:5W30 QUARTZ INEO MC 3 5L
用户希望能够搜索MC3
(无空格)并获取文档;但是,搜索MC 3
(带空格)也应该有效。此外,可能存在内容不包含空格的文档,并且在使用空格进行查询时应该找到这些文档。
我尝试了不带空格的索引(例如5W30QUARTZINEOMC35L
),但这并没有真正起作用,因为使用通配符搜索我会匹配太多,例如 MC35 也会匹配,我只想匹配两个连接在一起的确切单词(以及确切的单个单词)。
到目前为止,我正在考虑另外索引两个单词的所有组合,例如5W30QUARTZ
, QUARTZINEO
, INEOMC
, MC3
, 35L
。但是,Elasticsearch 是否有针对此的原生解决方案?
php - 匹配没有空格的单词以匹配elasticsearch中带空格的文本
问题标题有点误导,但我不知道如何正确表达,但这是我的场景
我在弹性搜索中的产品记录标题中有一个单词Water Wipes(请参阅中间的空格)。现在我需要将它与waterwipes相匹配。因为两者之间没有空格,所以查询waterwipes的结果为零。以下是 Elastic 搜索中的必须匹配查询(我这里使用的是 PHP)
该领域的分析仪是“英语”。我如何匹配诸如Water Wipes for waterwipes 之类的词
elasticsearch - 应用分析器/过滤器时搜索弹性搜索错误
我已经下载了包含技能分类法的 onet 数据集,并将其上传到弹性搜索中。在技能分类中,有一些技能,如 c++、.net、C#。我想给 c# 并且只获得 c# 的技能。通过检查一些链接,我将索引的映射和设置设置如下。
当我使用如下查询时
我正在获得所有具有“c”的技能
当我使用如下查询时假设应用了分析器
我得到空输出。我是否正确包含了分析器,还是我的查询错误?