lordfritte
Lieutenant
- Registriert
- Juli 2006
- Beiträge
- 965
Hallo ich wollte mal nachfragen ob hier jemand Erfahrung mit Elasticsearch(5.6.0) hat.
Ich habe folgendes Szenario: Ich habe einen Produktdaten-Index bestehend aus 3 properties:
Titel: string
Description: string
KategoryKey: string (md5 hash des Kategorie-Pfades)
Ich nutze die API(golang + PHP, daher ich nicht auf die HTTP Query-String API beschränkt) und möchte verschiedene Suchabfragen starten.
Dabei sind immer ein oder MEHRERE Kategorie-Keys enthalten und eine Textsuche auf Titel, oder Description, oder Title+ Description enthalten.
Die eigentliche Frage ist: Wie ich das Json für eine Suchabfrage(inklusive ausschließenden Keywords) formuliere? Damit ich eben Treffer NUR aus den Angegeben Kategorieren erhalte.
Ein Beispiel: Ich möchte in den Kategorie "8108e4735fd6acd0edb6d63d62c37cde" und "b3b7c084c5e166061853949c7f1478f0"
Nach Produkten mit "GORE-TEX" in Title und/order Description, aber nicht mit "passform*" in Description suchen.
Ich habe jetzt folgenden Query versucht:
Das Ergebnis sah am Anfang auch gut aus, aber dann ist mir Augefallen, dass zum Ende hin auch Ergebnisse, wo nur "GORE" im Title steht, aber kein "-TEX"....
Ich habe folgendes Szenario: Ich habe einen Produktdaten-Index bestehend aus 3 properties:
Titel: string
Description: string
KategoryKey: string (md5 hash des Kategorie-Pfades)
Ich nutze die API(golang + PHP, daher ich nicht auf die HTTP Query-String API beschränkt) und möchte verschiedene Suchabfragen starten.
Dabei sind immer ein oder MEHRERE Kategorie-Keys enthalten und eine Textsuche auf Titel, oder Description, oder Title+ Description enthalten.
Die eigentliche Frage ist: Wie ich das Json für eine Suchabfrage(inklusive ausschließenden Keywords) formuliere? Damit ich eben Treffer NUR aus den Angegeben Kategorieren erhalte.
Ein Beispiel: Ich möchte in den Kategorie "8108e4735fd6acd0edb6d63d62c37cde" und "b3b7c084c5e166061853949c7f1478f0"
Nach Produkten mit "GORE-TEX" in Title und/order Description, aber nicht mit "passform*" in Description suchen.
Ich habe jetzt folgenden Query versucht:
PHP:
array(
'index' => 'products_example',
'type' => 'products_example',
'body' => array(
'size' => 1000,
'query' => array(
'bool' => array(
'filter' => array(
'terms' => array(
'_categoryKey' => array("8108e4735fd6acd0edb6d63d62c37cde", "b3b7c084c5e166061853949c7f1478f0")
)
),
'must' => array(
'match' => array(
'Title' => 'GORE-TEX'
)
)
),
)
)
);
Das Ergebnis sah am Anfang auch gut aus, aber dann ist mir Augefallen, dass zum Ende hin auch Ergebnisse, wo nur "GORE" im Title steht, aber kein "-TEX"....