0

Yii2 提供了一个弹性搜索扩展和弹性搜索 ActiveRecord 类。

这个弹性搜索扩展接缝通过查询_source弹性搜索的字段从弹性中读取数据,这并不理想。

如果弹性中的字段设置为"store" :true直接从存储字段中读取数据的更好方法,而不是通过查询_source导致弹性对该字段进行隐式解析的字段。

有没有办法配置或使用 Yii2 / elaticsearch - 扩展从存储的字段中获取数据?我在这里没有找到任何选项或其他东西:https ://www.yiiframework.com/extension/yiisoft/yii2-elasticsearch/doc/api/2.1/yii-elasticsearch-activerecord

4

1 回答 1

0

回答我自己的问题以防其他人有同样的问题:

如果你喜欢在存储字段上使用 Yii2 中的活动记录运行查询,并且如果你想从存储的条目中获取数据,而不是通过解析字段,那么你可以通过使用active 的 - 函数来_source明确指定存储的字段->storedFields()记录类。

使用活动记录它看起来像这样:

/* new instance from User model,
   which is based on `\yii\elasticsearch\ActiveRecord`*/
$user = new User();


/* '*' for all fileds instead of an array of fieldnames */
$query = $user -> find()
                    -> query('<your query object')
                    -> storedFields(['*']);
于 2022-01-24T09:12:08.900 回答