当前位置: 首页 > 面试题库 >

太多字段不利于Elasticsearch索引?

唐睿
2023-03-14
问题内容

假设我有一千个键,并且我想存储关联的值。直观的方法似乎像

{
   "key1":"someval",
   "key2":"someotherval",
    ...
}

对于Elasticsearch索引具有数千个键来说,这是一种不良的设计模式吗?以这种方式引入的每个键都会为索引下的每个文档增加开销吗?


问题答案:

如果您知道键数有上限,那么几千个字段就不成问题。

问题是当您拥有一组无限制的键时,例如,当键是从一个值派生时,因为您将拥有一个不断增长的映射关系以及簇状态。它还可能导致奇怪的搜索。

这是一个足够常见的问题/问题,我在“
Elasticsearch搜索疑难解答”一文中为初学者
专门介绍了一部分。

简而言之,成千上万个字段是没有问题的-无法控制映射。



 类似资料:
  • 我有一个endpoint,我正在将它代理到ElasticSearchAPI中,以进行简单的用户搜索。 有关这些参数的一些详细信息如下 所有参数都是可选的 昵称可以作为全文搜索进行搜索(即'myUser'将返回'myUsername') 电子邮件必须完全匹配 名称可以搜索为每个令牌的全文搜索(即'john'将返回'John Smith') ElasticSearch调用应将参数集体视为AND'd。

  • 我有以下查询 http://172.22.23.169:9200/index1,index2,index3/_search?pretty 使用这个URL,我想查询Elasticsearch中的许多索引,并且只返回那些存在特定字段的文档。 是否可以在“exists”子句中放入一个字段列表,我在其中定义“field1”、“field2”或“fiedl3”是否存在于某个文档中,否则返回它,或者我必须编写

  • 我需要在我的应用程序中添加搜索栏。搜索将按名和姓进行搜索。我不知道如何编写elastcsearch查询。名字和姓氏是两个分开的字段。我是个新手。 例:名:约翰,姓:约书亚 搜索栏字符串为上层结果:约翰·乔·约翰·乔·约翰·乔·乔·约翰·约书亚·约翰·约书亚·乔...

  • 问题内容: 我正在使用最新版本的elasticsearch-php以及最新版本的MongoDB和ElasticSearch。 我需要对可以包含一个或多个值的多个字段进行搜索。例: country_code应为NL,BE或DE,并且类别应包含AA01,BB01,CC02或ZZ11 我以为我会按照以下方式解决它(PHP): 但是结果甚至还不能接近我期望返回的数据。 有时 $ countries 和/或

  • 我配置了一个带有两个字段的Elasticsearch索引:“name”和“type”。当我执行下面的查询时,没有得到任何结果,因为“actor”在“type”字段中。 有没有任何方法可以执行一个包含多个单词的查询,并且即使一些单词在“name”字段中而其他单词在“type”字段中也可以得到结果。 谢谢你的帮助!

  • 我有一个带有标准分析器的弹性搜索集群。我知道使用这个分析仪,术语“300”被分析为一种类型。 假设我正在搜索一个具有字段“name”的文档,该字段的值为“纸巾300 CT”,分析为[“Paper”(ALPHANUM)、“tower”(ALPHANUM)、“300”(NUM)、“CT”(ALPHANUM)] 目前,当我使用模糊/通配符查询时,如下所示: 无论模糊性如何调整,模糊查询都不匹配。我希望术