查询对象字段中的所有属性

时间:2018-07-12 07:26:44

标签: laravel elasticsearch

这是我的情况: 我正在使用Scout Elastic Driver和ElasticSearch开发Laravel应用程序。 我有一个包含这样映射的文档的索引:

[[1, 2, 3], [10, 20, 30], [11, 22, 33]]

这是我当前的搜索规则:

{
   "acronym":{
      "type":"text"
   },
   "id":{
      "type":"long"
   },
   "product_id":{
      "type":"integer"
   },
   "trans":{
      "properties":{
         "en":{
            "type":"text",
            "fields":{
               "keyword":{
                  "type":"keyword",
                  "ignore_above":256
               }
            }
         },
         "it":{
            "type":"text",
            "fields":{
               "keyword":{
                  "type":"keyword",
                  "ignore_above":256
               }
            }
         }
      }
   },
   "value":{
      "type":"text"
   }
}

它运行良好,可以正确地向我返回在一个或多个字段中具有值的数据。但是,如您所见,trans字段包含翻译后的数据,并且在我的应用程序中,我们可以进行多次翻译,并在每次查询中不适合我的新搜索词时添加。

那么,有没有办法查询对象字段中的所有属性? 像这样:

'should' =>
                [
                    [
                        'match' => [
                            'value' => $this->builder->query,
                        ],
                    ],
                    [
                        'match' => [
                            'trans.it' => $this->builder->query,
                        ]
                    ],
                    [
                        'match' => [
                            'trans.en' => $this->builder->query,
                        ]
                    ],
                ],

1 个答案:

答案 0 :(得分:0)

这对我有用

union

    if @b=1
begin

    select zzz
end

    else if( @b=2)

    select ttt
end