Ich habe eine bedingte Abfrage in Mysql ich es in Elasticsearch Abfrage konvertieren möchten:Bedingte Abfrage in Elasticsearch
Abfrage:
I Produktliste Seite mit Preis Ranger Suche. Wenn Benutzer diese Suche verwenden, die ich überprüfen möchte, ob das Produkt einen Verkauf hat, dann sollte es den Verkaufspreis berücksichtigen. (Scheck Verkauf: i bin Überprüfung Verkauf durch aktuelles Datum zwischen sale_start und sale_end Datum.)
MySql Abfrage:
SELECT *
FROM `product_sku`
WHERE
((sale_start < '2016-05-12 15:23:53' AND sale_end > '2016-05-12 15:23:53' AND sale_price between 600 AND 1800)
OR (sale_end < '2016-05-12 15:23:53' AND selling_price between 600 AND 1800)
)
Elasticsearch Abfrage:
$params = [
'index' => 'index',
'type' => 'product-list',
'body' => [
"query" => [
"filtered" => [
"query" => [
"match_all" => [],
],
'query' => $query,
"filter" => [
"nested" => [
"path" => "default_product_low_price_with_seller",
"filter" => [
"bool" => [
"should" => [
[
"range" => [
"default_product_low_price_with_seller.sale_price" => [
"gte" => $_GET['filter']['price']['from'],
"lte" => $_GET['filter']['price']['to'],
],
],
],
[
"range" => [
"default_product_low_price_with_seller.sale_end" => [
"gte" => $now,
],
],
],
[
"range" => [
"default_product_low_price_with_seller.sale_start" => [
"lte" => $now,
],
],
],
],
],
],
"filter" => [
"bool" => [
"should" => [
[
"range" => [
"default_product_low_price_with_seller.selling_price" => [
"gte" => $_GET['filter']['price']['from'],
"lte" => $_GET['filter']['price']['to'],
],
],
],
[
"range" => [
"default_product_low_price_with_seller.sale_end" => [
"lte" => $now,
],
],
],
[
"range" => [
"default_product_low_price_with_seller.sale_start" => [
"gte" => $now,
],
],
],
],
],
],
],
],
],
],
"aggs" => [
"brand_name" => ["terms" => ["field" => "brand_name"]],
"category_with_in_title" => [
"nested" => [
"path" => "category_with_in_title.parent_cat",
],
"aggs" => [
"category_with_in_title.title" => ["terms" => ["field" => "category_with_in_title.parent_cat.title"]],
],
],
],
],
];
Wo ist Ihre MySQL-Abfrage? –
Ich habe meine Frage aktualisiert .... –