我试图使用elasticsearch搜索产品。例如,如果产品是汽车,它将具有诸如“颜色”,“品牌”,“型号”,“km”,...等某些字段。
如果是衣服,则只会有“颜色”,“尺寸”,...
我想对所有这些信息进行索引,以便能够搜索介于aaa km和bbb km之间的km和/或xxxx模型的汽车,这与衣服或任何其他产品相同。
如何在elasticsearch中创建此类字段?我希望所有产品都在同一索引中,以便用户可以搜索所有产品,但是如果用户搜索产品类型,则他应该能够根据此类产品指定更多详细信息。
我在考虑数组字段,但这是否意味着即使某些字段与某些产品不相关(即衣服将具有km字段??),所有产品也会具有对应于所有类型产品的所有字段?或者是否可以在索引中仅放入与每个产品相对应的所需信息?
谢谢
最佳答案
您可以使用类型。创建一个具有颜色,品牌,型号,k等字段的汽车类型,然后创建具有颜色,大小等字段的cloth类型。
一个索引可以有多种类型。以下两个链接可能会帮助您:
您可以轻松地在类型之间进行搜索,以便发出这样的搜索以返回该索引内所有类型的所有文档:
curl -XGET http://localhost:9200/_search?pretty=true -d '{"query":{"matchAll":{}}}'
附加信息-Searching across types
拥有数组字段不是一个好主意,因为您将不会利用Elasticsearch的功能来索引半结构化文档。
祝一切顺利。
关于elasticsearch - 根据类别不同的领域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17283329/