这是我的情况: 我正在使用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,
]
],
],
答案 0 :(得分:0)
这对我有用
union
if @b=1
begin
select zzz
end
else if( @b=2)
select ttt
end