2016-10-04 80 views
0

我是ES新手,我在ES上的第一个项目有一些复杂性。所以来听取要求帮助。复杂类型模式的弹性搜索索引/映射

我们得到了产品的多变性,不同种类的产品具有不同的我们关心的属性集。例如,对于智能手机,我们关心RAM,CPU等。对于书籍,我们关心作者,版本等。 为了将它们全部放在一个数据存储中,存储架构如下所示:

产品编号:诠释,Attribute_Key,ATTRIBUTE_NAME:字符串,ATTRIBUTE_VALUE:字符串

因此,对于智能手机和一本书,记录可以看起来像:

phoneId, 3, "CPU Speed", "2GHz" 
phoneId, 4, "RAM", "2GB" 
bookId, 83, "Author", "Mark Twin" 
bookId, 95, "Published", "1935" 

现在我有大约50属性名,这是不是很多。我想索引他们所有的人。与ES中的正常索引/映射机制不同,您可以直接指定您想要索引的“列”。对于这种模式,我该如何告诉ES针对所有可能的属性名称进行索引?由于我只有大约50人?

例如,我想索引RAM,作者,出版。它看起来像一个多字段索引,但没有经验。任何帮助表示赞赏。

谢谢,

+0

您计划使用哪种版本的弹性搜索? –

+0

你可能想看看这个http://stackoverflow.com/a/13627218/1849366 –

+0

弹性搜索的版本是2.1.2。 –

回答

0

使用下面的映射。这只会索引内存,作者和发布。

"person" : { 
    "properties" : { 
     "CPU_Speed" : { 
      "type" : "string", 
      "include_in_all" : false 
     }, 
     "RAM" : { 
      "type" : "string" 
     }, 
     "Author" : { 
      "type" : "string" 
     }, 
     "Published" : { 
      "type" : "string" 
     } 
    } 
} 
+0

感谢Vinod,它看起来像我需要添加所有40个属性名称,并且它不保护将来的属性名称。考虑两个领域组合索引更有意义。但不知道如何去做...... –

+0

@ShiChen我没有得到你的评论“思考两个领域结合索引更有意义”。你能简单解释一下吗? –