我有 PostgreSQL 数据库,其 JSON 类型字段名为“data”,其内容结构如下:
{
"requestData" : {
"url": "some url"
"body": {
"page_id": 12
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用 SequelizefindAll使用过滤器发出查询请求page_id,但没有得到一些结果。
问题是:我可以按 JSON 类型的嵌套字段进行搜索,还是仅按 JSONB 类型进行搜索?如何?
我尝试使用 docker 和 babenkoivan/scout-elasticsearch-driver 在 laravel 项目上设置 elasticsearch。当我启动 docker 时,所有工作的容器都包括 elasticsearch,但是当我尝试使用
php artisan elastic:create-index "App\TutorialIndexConfigurator"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
No alive nodes found in your cluster
Run Code Online (Sandbox Code Playgroud)
此外,当我尝试从 docker 工作区容器通过 curl 访问端口 9200 时,我得到
curl: (7) Failed to connect to localhost port 9200: Connection refused
Run Code Online (Sandbox Code Playgroud)
但是当我从终端做同样的想法时,我得到了关于 docker elasticsearch 集群的信息。我想这可能是相关的。
我为这个问题浪费了三天,我没有任何解决方案,请帮助。
我试图从 laradock 做同样的事情,并得到同样的结果。
这是我的 docker-compose.yml 内容
version: '3.1'
#volumes:
# elasticsearch:
# driver: local
volumes:
esdata1:
driver: local
esdata2:
driver: local
esdata3:
driver: local
networks:
esnet:
frontend:
backend:
services:
nginx:
image: nginx
ports:
- …Run Code Online (Sandbox Code Playgroud) 我尝试在休息控制器中返回空白主体,但它返回“null”。
我已经尝试在脚本的最后一行中使用
\Yii::$app->response->setStatusCode(200);
Run Code Online (Sandbox Code Playgroud)
并得到相同的结果。
我使用高级模板和自定义休息逻辑。控制器延伸 yii\rest\Controller
main.php文件中有我的配置
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\controllers',
'bootstrap' => ['log'],
'modules' => [],
'components' => [
'request' => [
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
],
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => false,
'enableSession' => false,
],
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
'GET add' => 'api/add',
'GET feed' => 'api/feed',
'GET remove' => 'api/remove',
], …Run Code Online (Sandbox Code Playgroud) docker ×1
javascript ×1
json ×1
laravel ×1
php ×1
postgresql ×1
response ×1
rest ×1
sequelize.js ×1
yii2 ×1