问题标签 [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 投票
1 回答
609 浏览

elasticsearch - Dotnet 中 NEST 的弹性搜索语音问题

我是弹性搜索的新手,我想将它用于语音搜索,所以我使用 nougat 包在 dotnet 中添加了插件 NEST,并尝试使用语音创建索引,但出现以下错误。

ServerError = {ServerError:400Type:非法参数异常原因:“[my_metaphone]的未知过滤器类型[语音]”}

任何人都可以帮助我在 dotnet 中使用语音配置创建索引吗?提前致谢

编辑 :

我可以使用以下 json 请求创建索引。

使用 C# linq 场景不起作用,任何人都可以指导吗?

0 投票
1 回答
248 浏览

elasticsearch - 通过关键字类型的规范化器实现雪球分析器等功能 - ELASTICSEARCH 5.6

我一直在尝试在我的一个 doc 字段类型上实现类似雪球分析器keyword的功能。就像,例如复数应该完全像他们的单数一样对待,以便两者的结果相同。

最初,我努力在我的字段上设置分析器,只是为了发现类型的字段keyword不能有分析器而是规范器。所以,我尝试在这些字段上设置一个规范化器,snowball但似乎我的规范化器不允许snowball过滤器(可能是规范化器不支持雪球过滤器)

我无法更改字段的类型。我想实现这样的功能,如果我的输入文本与餐馆匹配,它应该将其视为相同restaurant并给出结果,这样我就不必将餐馆作为关键字添加到该字段。

我们可以通过规范化器实现这一点吗?我浏览了弹性文档和各种帖子,但一无所知。下面是我如何尝试使用弹性服务器的响应设置规范器。

PUT 本地主机:9200/db110/_settings

回复

0 投票
2 回答
883 浏览

python - 在 Elasticsearch 中使用 AND OR 进行类似 SQL 的查询

嗨,我还在玩 elasticsearch(V6.1.3),发现它很神奇,但仍然在挣扎。我可以轻松地进行单项查询搜索,我的设置代码如下:

现在我想做以下类似 SQL 的查询(假设我的 SQL 表名:my-type):

这意味着我必须在不同领域使用多个术语进行搜索。谁能建议我怎么做?谢谢

0 投票
0 回答
280 浏览

elasticsearch - ElasticSearch edge-ngram 和模式过滤器

我有像 SimpleDoc000155/1 这样的标题(字符数不固定,但后面总是跟着 9 个数字和/和数字),我想知道如何分析这些文件以获得结果:155 和 SimpleDoc000155。

Elasticsearch 是 2.2 版本

我当前的设置是:

我得到的结果是

我有点失落。尝试了很多,但我无法恢复 155,看起来 pattern_capture 工作不正常。

谢谢您的回答!

更新:

将标记器从 Edgengram 更改为 ngram,有点工作,但有很多不需要的标记。

0 投票
1 回答
691 浏览

elasticsearch - 从字段中提取关键字

我想写一个查询来分析一个或多个字段?

即当前的分析器需要文本才能运行,而不是传递文本我想传递一个字段值。

如果我有这样的文件

我想返回类似下面的东西

0 投票
1 回答
476 浏览

java - 使用 Edge N Gram 分析器和 char 过滤器创建分析器,用新行替换空格

我输入了以下类型的文本。 foo bar等等hello world。我使用 Edge NGram 标记器创建了一个分析器,并使用它在标记下创建的分析 api。

但是,当我在我的代码中将文本“foo bar”传递给方法tokenStream时,它会为foo bar创建下面的标记。

f, fo, foo, foo , foo b, foo ba, foo 酒吧。

这导致分析api 返回的令牌不匹配。我想知道如何添加一个 char 过滤器来删除文本中的空格并将 Edge NGram 标记器应用于文本中的各个术语。

因此,在foo bar示例中,它应该创建下面的令牌。当我调用tokenStream方法时。

f,fo,foo,b,ba,bar。

我尝试将 char 过滤器添加到我的创建分析器的 java 代码中。下面是它的代码。

但它lu2424就像它一样。另外请让我知道我的分析器代码是否正确?

0 投票
1 回答
344 浏览

elasticsearch - elasticsearch 6.4 不计算字段中的 search_analyzer

我对 ElasticSearch 映射有疑问。例如字段的映射name是:

整个映射有效search_analyzer,但 ElasticSearch 似乎忽略了这一点。

分析设置:

根据 ElasticSearch 文档,我没有search_analyzer在字段中找到任何定义。如果这种方法不起作用,是否有任何替代结构可以包含搜索分析器?

0 投票
1 回答
537 浏览

elasticsearch - Elasticsearch - 停止分析器不允许数字

我正在尝试使用 elasticsearch 6.3.0 构建一个搜索实用程序,可以在数据库中搜索任何术语。我已经应用了 Stop Analyzer 来排除一些通用词。但是,在该分析系统停止给我提供数字术语之后。

就像我搜索 news24 一样,它会删除 24 并仅在所有记录中搜索“新闻”字词。不确定为什么。

以下是我正在使用的查询

0 投票
0 回答
189 浏览

java - 使用 JEST 进行分析 api 调用

我有一个非常简单的要求,我需要根据为我的索引设置的默认分析器来获取我的搜索词的分析文本。

我正在使用分析 API https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-analyze.html来获取所需的令牌。

我可以使用curl请求来获取它。

我正在使用 2.X 版本的 ES 和JEST库。我查看了JEST库的各种文件,但找不到进行分析API 调用的支持。

0 投票
0 回答
96 浏览

elasticsearch - 用于在 Elasticsearch 中突出显示的用户提供的术语向量

我想在搜索结果中使用 Elasticsearch 的突出显示功能,但我不能使用分析器插件。我们的(非常定制的)NLP 管道相当繁重(在 CPU 和内存中,并且在生产中它可能会与其他服务对话以进行字典解析)。

目前我们将纯文本文档转换为标记列表,因此The quick siberian fox jumps over the grizzly bear变为{"text": "The quick siberian fox jumps over the grizzly bear", "tokens": ["quick", "siberian fox", "jump", "grizzly bear"]}. 然后我们只需将上面的内容作为文档插入,其中包含 2 个字段texttokens,并且我们将大部分搜索作为tokens字段上的完全匹配进行。到目前为止,一切都很好。

现在我们正在考虑在原始文本中突出显示匹配项,因此如果用户搜索“jump”,我们希望返回The quick siberian fox [jumps] over the grizzly bear。然而,据我所知,Elasticsearch 高亮引擎依赖于在索引时或查询时分析纯文本,以获取包含位置信息的术语向量。(这个对吗?)

因为我们不能为ES写一个分析器插件,所以不能依赖这个方法。但是,在纯文本字符串上运行 NLP 管道时,我们确实会生成位置信息,那么我们可以在索引时提供术语向量吗?我在ElasticSearch 中找到了用户定义的术语向量,但唯一的答案侧重于应用程序 (KNN),而不是手动插入术语向量的问题。

或者,我们可以使用不同的突出显示方式吗?我找到了https://www.elastic.co/blog/search-for-things-not-strings-with-the-annotated-text-plugin但我不确定如果我们只是索引东西会如何表现就像the [quick](quick) [siberian fox](siberian fox) [jumps](jump) over the [grizzly bear](grizzly bear)几乎所有东西都会被注释一样。