私は弾性検索2.2.0を使用しています。私は2つのフィルタを使用して結果を検索したいが、それは致命的なエラーを示しています:クエリは複数のフィールドをサポートしていません。複数の用語フィルタが弾性検索で機能していません
つのフィルタは、次のとおりです。
plocation: china
pcategoryid: 0,20,21
ここに私のコードです:
$search = 'Doors';
$limit = 6;
$params = [
'index' => 'product',
'body' => [
'query' => [
"bool" => [
"should" => [
'multi_match' => [
"fields" => [
"pname",
"pmodel",
"pcategoryname",
"pmetakeyword"
],
"query" => $search,
"type" => "phrase",
"boost" => 10
],
'multi_match' => [
"fields" => [
"pname",
"pmodel",
"pcategoryname",
"pmetakeyword"
],
"query" => $search,
"type" => "most_fields",
"fuzziness" => "1",
"boost" => 0
]
]
],
],
"filter" => [
"bool" => [
"must" => [
"term" => [
"ptypeid" => 1
]
],
"should" => [
"term" => [
"psearchstatus" => 1
]
],
"filter" => [
"terms" => [
"plocation" => ['china'], "pcategoryid" => [0,20,21]
]
]
],
],
"from" => ($page - 1) * $limit,
"size" => $limit
],
];
$client = Elasticsearch\ClientBuilder::create()->build();
$response = $client->search($params);
$results = $response['hits']['hits'];
は私がしようとしてる、または私は正しい軌道に乗っています何について行くにあり、他の方法は何ですか?
が – Dekel