我试图使用elasticsearch来搜索产品。例如,如果产品是汽车,它将有一些领域,如“颜色”,“品牌”,“模型”,“公里”,...... 如果它是衣服,它只会有“颜色”,“大小”,...... 我想用弹性索引所有这些信息,以便能够搜索aaa km和bbb km之间公里的汽车,和/或xxxx型号,同样适用于衣服或任何其他产品。
如何在elasticsearch中创建这样的字段?我希望所有产品都在同一个索引中,因此用户可以搜索所有产品,但如果用户搜索产品类型,那么他应该能够根据这种产品指定更多细节。
我在想阵列字段,但这是否意味着即使某些字段与某些产品无关(即衣服会有千米字段?),所有产品都会包含与所有类型产品相对应的所有字段?或者,索引是否可以只提供与每种产品相对应的信息?
感谢
答案 0 :(得分:0)
您可以使用类型。使用字段颜色,品牌,型号,k等创建一个名为car的类型,然后创建一个名为cloth的类型,其中包含字段颜色,大小等。
单个索引可以有多种类型。以下两个链接可能对您有所帮助:
您可以轻松搜索各种类型,以便您可以发出这样的搜索,以返回该索引中所有类型的所有文档:
curl -XGET http://localhost:9200/_search?pretty=true -d '{"query":{"matchAll":{}}}'
其他信息 - Searching across types
拥有数组字段不是一个好主意,因为你不会利用elasticsearch的能力来索引半结构化文档。
一切顺利。