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

elasticsearch - 创建索引嵌套

如何使用 Elasticsearch Nest API 重新创建以下索引?

这是索引的 json,包括映射:

这是我的尝试:

该文档没有提及有关此的任何内容?

更新:

发现这个帖子使用 var index = new IndexSettings()

然后使用字符串文字 json 添加分析。

index.Add("analysis", @"{json});

在哪里可以找到更多像这样的例子,这行得通吗?

0 投票
1 回答
2005 浏览

elasticsearch - 如何在elasticsearch中为一个字段配置多个分析器?

我正在尝试将路径层次结构分析器添加到我的类型中的一个字段。

我想在同一字段上配置路径分析器和​​反向路径分析器,以便我可以获得一个字段的正常路径和反向路径。

例如。

路径=“/角度/指令/结构”

我想配置这个路径字段,例如每当我分析这个字段时,如果我指定反向,我应该以正常顺序和反向顺序获取令牌。

下面是我的映射。

我已经配置了这个分析器。现在如何获取路径和反向路径的令牌?

谢谢。

0 投票
1 回答
133 浏览

elasticsearch - 分析 API 不适用于 Elasticsearch 1.7

我们正在运行 Elasticsearch 1.7(计划很快升级),我正在尝试使用分析 API 来了解不同分析器的作用,但从 elasticsearch 呈现的结果不是我所期望的。

如果我对我们的 elasticsearch 实例运行以下查询

我会得到这个结果

这对我来说没有意义。我正在使用停止分析器,为什么结果中有“and”和“the”这两个词?我试图将停止分析器更改为空白和标准,但我得到与上面完全相同的结果。它们之间没有区别。但是,如果我对 Elasticsearch 5.x 的实例运行完全相同的查询,结果将不再包含“and”和“the”,而且看起来更符合预期。

这是因为我们使用的是 1.7 还是我们的 Elasticsearch 设置中的某些东西导致了这个问题?

编辑: 我在 chrome 中使用 Sense 插件进行查询,该插件不支持带有请求正文的 GET,因此它将请求更改为 POST。Elastic Analyze API 1.7 似乎不支持 POST 请求 :( 如果我像这样更改查询 GET _analyze?analyzer=stop&text=THIS+is+a+test&pretty 它可以工作

0 投票
0 回答
419 浏览

elasticsearch - 如何在 elasticsearch 中使用 path_hierarchy 分析器查询字段?

我已经使用以下配置在 elasticsearch 中配置了 path_analyzer。

现在我插入了四个文件,其中路径值为:

  • /角度/结构
  • /角度/结构/指令
  • /角度/结构/组件
  • /角度/物流

现在我想查询我的索引,例如:

  1. 它将仅检索structural.
  2. 它将返回所有叶节点components,即directiveslogistics

我尝试在查询下运行,但它检索了所有记录。

有什么帮助吗?

谢谢。

0 投票
2 回答
260 浏览

elasticsearch - 文本字段上的 ElasticSearch Analyzer

这是我在 elasticSearch 上的字段:

这是我的分析器:

这是我的过滤器:

这是我的文档我的索引(在我唯一的字段中:keywordName):

“canne a peche”、“canne”、“canne a peche telescopique”、“iphone 8”、“iphone 8 手机壳”、“iphone 8 保护套”、“iphone 8 充电器”、“iphone 8 new”

当我搜索“canne”时,它给了我“canne”文档,这就是我想要的:

当我搜索“canne à pêche”时,它会给我“canne a peche”,这也可以。“Cannes à Pêche” -> “canne a peche” -> 好。

这是棘手的部分:当我搜索“iphone 8”时,它给了我“iphone 8 cover”而不是“iphone 8”。如果我更改大小,我设置 5(因为它返回包含“iphone 8”的 5 个结果)。我看到“iphone 8”是得分的第四个结果。首先是“iphone 8 cover”,然后是“iphone 8 case”,然后是“iphone 8 new”,最后是“iphone 8”......

这是查询的结果:

我怎样才能保持关键字“canne a peche”(重音、大写字母、复数)的灵活性,但也告诉他如果有完全匹配(“iphone 8”=“iphone 8”),给我确切的关键字名称?

0 投票
2 回答
1735 浏览

curl - 自定义分析器在弹性搜索中不起作用

运行弹性版本 1.6

我正在尝试为我在 elasticsearch 中的索引设置自定义分析器。我的索引 / 有一些属性,其中包含一些重音和特殊字符。

就像我的一个属性名称具有这样的值,"name" => "Está loca"。所以我想要实现的是,每当我尝试通过这种方式搜索时, http://localhost:9200/tutorial/helloworld/_search?q=esta

我应该得到"Está loca"的结果。我已经浏览了以下链接并配置了必要的分析器,该分析器在链接中进行了说明。 https://www.elastic.co/guide/en/elasticsearch/guide/current/asciifolding-token-filter.html

我在创建索引时进行了配置,并制作了一些这样的条目进行测试,

但是在像这样搜索时, http://localhost:9200/tutorial/helloworld/_search?q=esta 什么也没发生。我只希望每当用户以任何语言(例如英语)搜索时,它都应该得到相同的结果。请任何人都可以提供帮助,我如何才能在过去 1 周内实现这一目标。

0 投票
1 回答
3254 浏览

curl - 在elasticsearch中将多个自定义分析器设置为单个字段

我在 ElasticSearch 环境中工作,我已经在本地机器上安装了 5.4.3 版的 elasticsearch。我正在尝试通过定义一些设置以及映射来创建索引。以下是我的设置和映射,

这是我的映射,

我想要实现的是,我想将所有自定义分析器应用于单个字段。但是上面的分析器字段映射给出以下异常,

请任何人都可以帮助我解决这个问题,努力解决这个问题。

0 投票
1 回答
56 浏览

elasticsearch - elasticsearch : 使用 ngram 分析器时避免重复评分

假设当文档包含“hello”和“hello hello”时我搜索“hello”,我希望“hello”获得更高的得分。

我正在使用 ngram 索引和搜索分析器。(因为在其他情况下我真的需要这个)所以“hello hello”匹配了两次,因此显示为最高结果。有什么办法可以避免这种情况吗?我已经尝试过术语查询、匹配短语查询、多重匹配查询,它们的“hello hello”得分都更高。

0 投票
1 回答
58 浏览

node.js - 无法在弹性搜索中搜索整数

我是弹性搜索的新手,我正在使用亚马逊的弹性搜索 5.3。这是我的 json 数据

这是我在 nodejs 中用于数据加载的设置。

搜索代码是

当我搜索字符串时,它给出了正确的结果。IE

但是当我为整数做时,它没有结果

它适用于正常的 curl 调用,无需指定任何文件

我读了很多帖子说我们需要添加分析器,即标准来处理整数。我尝试在创建时添加,但它抛出了错误。我需要添加边缘 NGram分析器吗?我没有得到如何处理这个。如何在nodejs中添加分析器..请有人帮我解决这个问题?

0 投票
1 回答
3238 浏览

c# - 在 Nest 5.5.0 中为属性设置 not_analyzed

我试图通过 Nest 5.5.0 设置“not_analyzed”索引类型,但我不知道该怎么做。

我的初始化:

和项目类:

在我通过 Postman 调用 index/_mapping REST 之后,这种 init 方式会创建某种奇怪的映射。有普通的“映射”JSON 部分,就在“createindexdescriptor”下方,数据几乎相同。