由于我是一个新的弹性搜索,我有困惑在弹性搜索方面。
1) shard
2) cluster
3) difference between number_of_nodes and number_of_data_nodes
4) difference active_primary_shards and active_shards
5) relocating_shards
6) unassigned_shards
启动elasticsearch时,它显示为5个分片。但是插入数据后,分片不断增加。我不知道分片的默认设置是什么。
提前道谢!
我问的原因是,当你尝试插入一个文档时,如果碎片增加了10,那么你将不是插入到你已经创建的索引中,而是根据ElasticSearch的“开箱即用”默认值创建一个全新的索引。即5个碎片和1个副本,即10个碎片(1组副本用于复制主碎片)。
例如,以下是如何创建索引并完全控制创建了多少碎片-
curl -XPUT <host>:<port>/<index> -d '{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 0,
"analysis": {
"analyzer": {
..........
..........
..........
..........
..........
..........
..........
..........
},
"filter": {
..........
..........
..........
..........
..........
..........
..........
..........
}
}
}
}'
问题内容: 我正在尝试使用以下查询对以下数据进行elasticsearch来执行术语聚合,输出将名称分解为标记(请参见下面的输出)。因此,我尝试将os_name映射为multi_field,但现在无法通过它查询。是否可以有没有令牌的索引?例如“ Fedora Core”? 查询: 数据: 输出: 映射: 问题答案: 实际上,您应该像这样更改映射 并且您的aggs应该更改为:
问题内容: 我是相当新的elasticsearch,使用6.5版。我的数据库包含网站页面及其内容,如下所示: 我已经能够执行一个简单的查询,该查询返回所有内容中包含“汽车”一词的文档(使用Python): 结果看起来像这样: “ _id”指的是一个域,所以我基本上回来了: abc.com def.com jkl.com 但我现在想知道如何往往是搜索关键词(“汽车”)出现 在 每个文档,如: abc
问题内容: 我在为elasticsearch实现自动完成功能时遇到问题,这是我的设置: 创建自动完成的分析器 然后,使用“别名”属性中的分析器在自动完成中创建一个类型: 之后; 添加文档: 当我运行以下命令时: 结果是 和 但是我应该在“别名”字段中获取我的文档,我有一个“ bs as”。 我尝试使用API,并得到了我认为是预期令牌的正确答案: 结果: 有什么提示吗? 编辑: 当我用实际类型运行分
我正在使用elasticsearch根据类别页面上的某些标准筛选产品。一种选择是由制造商过滤。用户可以选择制造商名称并获得筛选的ResultSet。我的问题是,尽管映射被定义为“not_analysis”,elasticsearch似乎标记了facet术语。 请参见以下示例: 我的映射如下所示: 以下是我的测试数据: 如果我执行下面的查询,我将得到一个命中,但两个方面的术语: 结果: 我所期望的是
我有一个带有标签列表的文档: 我有一个术语清单: 我想要一个查询,将返回在术语列表中有标签的文档-但没有其他术语。 因此,给定上面的列表,查询将返回,但不返回(因为它有一个术语不在术语列表中)。 我尝试使用过滤器执行查询,如下所示: 但那没用。 如何创建一个查询,在给定术语列表的情况下,该查询将匹配列表中仅包含术语而不包含其他术语的文档?换句话说,所有文档都应该包含一个标签列表,这些标签是所提供的
问题内容: 有没有一种方法可以将条件附加到值数组中? 例如,如果我的文档如下所示: 我想在其后面附加“ item4”和“ item5”。 我必须在2个查询中这样做吗?一个加载当前值列表,然后更新该列表?还是有一种更优雅的方式让我在一个查询中附加这些项目? 我正在尝试使用Elastic4s做到这一点: 为了使用上面的代码片段,我需要启用groovy脚本,而且我不确定如何对多个项目执行此操作。 任何想