弹性搜索在复杂类型模式上建立索引/映射

时间:2016-10-04 00:07:18

标签: elasticsearch elasticsearch-plugin

我是一名ES新手,我在ES上的第一个项目有一些复杂功能。所以即将听到寻求帮助。

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

ProductId:Int,Attribute_Key,Attribute_Name:String,Attribute_Value:String

因此,对于智能手机和书籍,记录可能如下:

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

现在我有大约50个属性名称,这并不是很多。我想索引所有这些。与ES中的常规索引/映射机制不同,您可以直接分配哪个"列"你想索引。对于这种模式,我应该如何告诉ES索引所有可能的属性名称?既然我只有50个左右?

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

谢谢,

1 个答案:

答案 0 :(得分:0)

使用以下映射。这将仅索引RAM,作者和已发布。

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