问题标签 [elasticsearch-6]

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 投票
2 回答
309 浏览

elasticsearch - 如何在 Yii2 elasticsearch 6 中混合 $query->andFilterWhere 和 $query->query

我将我的 yii2 系统从 yii2-elasticsearch 2.0 更新到 2.1,将 elasticsearch 包从 2.2.1 更新到 6.2.1。在旧系统中,我可以混合$query->andFilterWhere如下$query->query(搜索方法在派生自的类中yii\elasticsearch\ActiveRecord):

它与 ES 2.2.1 一起工作没有任何问题,但现在andFilterWhere覆盖$query->query独立于序列。如果两个部分中的一个被移除,另一个过滤器可以完美地工作,只是不能一起使用。任何想法?

0 投票
1 回答
2118 浏览

elasticsearch - Elasticsearch - multi_match 不适用于嵌套字段

我的记录可以为单个文本字段提供多种翻译,例如:

为了表示这些记录,我创建了以下索引:

但是当我尝试使用multi_map查询时,它不会返回预期的结果。此查询查找记录(按顶级type字段搜索):

但是这个查询没有(按嵌套title.en字段搜索):

这令人惊讶,因为如果我获得该title.en字段的术语向量,似乎该记录已被正确索引:

查询似乎也使用了正确的字段,并且应该匹配其中一个标记:

请注意,它正在dark字段title.en( no match on required clause ((type:dark | title.en:dark | title.de:dark))) 中查找令牌。

我正在使用 Elasticsearch 6.2.1

似乎该查询应该有效。我错过了什么吗?

0 投票
1 回答
1452 浏览

java - 无法在 elasticsearch 6.1.2 的映射中插入“index”:“not_analyzed”

我正在尝试找到一个匹配区分大小写的名称。当我尝试下面的代码时,它按预期工作,不区分大小写。

为了找到区分大小写的值,我发现要使用索引作为 not_analyzed。我尝试了以下

我收到一个异常,如下所示

我想完成以下两个场景:

弹性搜索版本是 6.1.2。

非常感谢任何帮助。

更新-1

根据@Val,我已将代码更改为:

现在我可以插入了。但是当我在 GroupName 中搜索 a 值时,结果为空。

0 投票
1 回答
1417 浏览

elasticsearch - 如何对 ES 6.0 中的示例执行 has_child 查询

join是关于在 elasticsearch 中键入的示例。我有插入映射,父母和孩子:

现在我正在尝试按孩子搜索父母:

我没有得到任何结果。:( >:(

首先type应该是什么字段???他们被告知类型已删除其次,我必须添加ignore_unmapped(看这里)但仍然没有结果

那么如何通过has_child查询elasticsearch示例中的数据来找到父级呢?

0 投票
1 回答
1365 浏览

javascript - Elasticsearch JS - 未定义变量 [x]

在测试 Elasticsearch 索引中,我已经索引了一个文档,现在我想通过将其length属性设置为来更新文档100。我想通过elasticsearch包通过脚本来做到这一点(因为这是一个简化的例子来说明我的问题)。

但是,我收到以下错误:

即使我已将该length属性包含在body.params.length.

使用以下内容:

  • 弹性搜索服务器v6.1.1
  • Elasticsearch JavaScript 客户端v14.1.0

我该如何解决这个问题?

0 投票
0 回答
34 浏览

elasticsearch - 如何在 ElasticSearch 6+ 中对用户可配置的模式进行建模?

我在一家小型 SaaS 初创公司工作。

作为 SaaS 软件,您创建一个帐户并邀请其他人。

我们有一些实体,例如“产品”,但您可以配置产品的字段。

假设您使用汽车,您可以创建“型号”、“年份”、“重量”等字段。

假设您使用衣服,您可以创建“尺寸”、“性别”等字段。

我们有这个由 SQL 建模,但我想在 ElasticSearch 中有一个副本,用于一般搜索,特别是用于可定制的报告。

为了对此建模,我正在考虑以下选项:

  1. 每个账户实体一个索引

    创建帐户时,我会创建一个名为“product-”之类的索引,它会有自己的架构。

    当帐户的管理员创建或更改字段时,我需要使用 Update By Query 或 Reindex API .. idk。

    删除帐户后,我需要删除索引。

    PRO:每个索引都有一个可靠的模式。

    缺点:动态创建/删除索引听起来很可怕。


  2. 每个实体一个索引。

    这个好像也还行。我会将“account_id”放在每个文档上,并且每次都对其进行过滤。

    每个实体只有一个索引:“产品”、“用户”、“联系人”、“销售”等。

    PRO:更简单

    缺点:每个索引都有多个模式。每个 account_id 一个

    我也不确定如何考虑关系......我可以动态创建关系吗?


  1. 一个索引来统治所有这些。

    一个索引“entities”,包含字段“account_id”、“entity_type”。

    也许我需要这样做才能正确地映射关系。我很困惑。我没有完全理解 join 字段。


有什么我想念的吗?

感谢您阅读到这里:)

0 投票
2 回答
64 浏览

elasticsearch - ElasticSearch - 如何按类型搜索?

我已经用给定的索引和类型将一个项目放入 ElasticSearch 中。我该如何找回它?

细节:

官方文档说明了这一点:

但我不明白。我该怎么办?

我试图像这样运行它,但它没有用:

这会引发错误:

任何想法如何正确运行它?

0 投票
1 回答
3980 浏览

elasticsearch - 在弹性搜索中的一个查询中搜索父级及其所有子级

参考官方文档中提到的建立父子关系的例子——https: //www.elastic.co/guide/en/elasticsearch/reference/current/parent-join.html

该链接提供了问答连接关系,其中问题是父类型,答案是子类型。

如果您需要在一个查询中搜索所有匹配某些文本的父母以及匹配某些特定于孩子的文本的孩子,您会怎么做?

假设他们在下面的 json 文档中有键值对,我们搜索匹配问题中文本的父母和匹配答案文本中的值的孩子。

我们不希望结果中只有父母或孩子,而是所有父母及其关联的孩子与查询匹配。

我知道内部点击是一种选择,但无法弄清楚用法 - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html

我希望问题很清楚,如果需要可以添加更多细节。

我还尝试了这里提到的父子内部点击示例:

例子:

这给了我所有父母的匹配孩子。如何向父级添加过滤器并仅查询同一查询中的特定父级(以及子过滤器)?是否可以在同一查询中过滤特定字段的父记录?

像这样的东西-

0 投票
1 回答
39 浏览

elasticsearch - 如何找出我在elasticsearch中的索引排序?

我使用命令在 elasticsearch (v6) 中创建了新索引:

回应是

接下来我检查了生成的映射

结果是

问题是:如何找出为我的索引设置的排序方式?

0 投票
1 回答
1256 浏览

elasticsearch - Elasticsearch:重新索引时设置字段类型?(可以单独使用 _reindex 完成吗)

问题:Elasticsearch _reindexAPI 能否用于设置/重置通过它复制的字段的“字段数据类型”?

这个问题来自查看 Elastics 文档以进行重新索引:https ://www.elastic.co/guide/en/elasticsearch/reference/6.2/docs-reindex.html

这些文档显示_reindexAPI 可以在复制内容时对其进行修改。他们给出了更改字段名称的示例:

script子句将导致“new-index”有一个名为 的字段New-field-name,而不是名称field-to-change-name-of来自“from-index”的字段

该文档暗示“脚本”功能中有很大的灵活性,但我不清楚这是否包括投影数据类型(例如引用数据以将其转换为字符串/文本/关键字,和/或处理事物作为文字试图将字符串数据转换为非字符串(显然与危险作斗争)

如果在 a 中设置数据类型_reindex 可能的,我不会假设它会是有效的和/或没有(可能是苛刻的)限制 - 我只是想更好地理解_reindex功能的限制(并弄清楚我是否可以强制使用数据类型在一次交互中,而不是在我执行重新索引命令之前设置映射没有新索引)

PS 我碰巧在 Elasticsearch 6.2 上工作,但我认为我的问题适用于所有具有_reindexapi 的版本(听起来像2.3.0 及更高版本)