我希望能够在我的ES索引中存储json对象。下面是我想要存储的例子(这个序列化模型,发送到ES请求主体):Yii2 Elasticsearch扩展 - 我如何处理类型映射?
"{"id":218,"name":"Test2","category_id":1,"address":"Pushkin street","phone":null,"site":null,"location":{"lat":64,"lon":70},"city":"Heaven","description":"Super company","tags":["#test1","#test2"]}"
当我尝试存储它(通过扩展,当然),这里的该ES返回错误:
"{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"failed to parse [location]"}],"type":"mapper_parsing_exception","reason":"failed to parse [location]","caused_by":{"type":"illegal_argument_exception","reason":"unknown property [lat]"}},"status":400}"
看来,我不能这样做,而不具有特定类型的映射,像文档: https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-object-type.html
不过,我似乎还没有找到一个在模型内部提供该映射的方式。该扩展的文档没有提到任何有关它的信息。 所以,我的问题是:我是否需要它,如果我这样做,如何?
欣赏所有反馈。
谢谢。虽然我明白了,但这证实了我的想法。顺便说一下,还有一个问题:我可以以某种方式在ES activequery中定义排序吗?还没有找到方法。 – nainy
您只需将一个数组传递给'orderBy()'。查看确切的结构[这里](https://www.elastic。但是通常类似'[[“name”=>“desc”],[“date”=>“asc”]]'' 。 – Beowulfenator