/ / Suchergebnisse mit elasticsearch filtern - php, elasticsearch

Suchergebnisse filtern mit elasticsearch - php, elasticsearch

Ich verwende den folgenden PHP-Client für die Elasticsearch: https://github.com/nervetattoo/elasticsearch, aber ich habe Probleme beim Hinzufügen mehrerer Felder, mit denen ich in meiner Suchabfrage übereinstimmen möchte.

Ich möchte eine Option nach Filter nach Typ hinzufügen, falls eine festgelegt wurde.

Ich habe mit dieser Syntax gespielt, aber bei der Suche wird nur das erste angegebene Feld berücksichtigt.

$type = ($type) ? $type : false;

$options = array(
"fields" => array("title", "content", "profile_id", "type", "name", "description", "date", "url"),
"from" => 0,
"size" => 10,
"query" => array(
($type ?
array("match" => array("name" => $term, "type" => $type)) :
array("match" => array("_all" => $term))
)
)
);

Irgendwelche Vorschläge werden geschätzt.

Antworten:

0 für die Antwort № 1

Wenn jemand interessiert ist, habe ich es mit dem Bool-Flag und der Optimierungssyntax gelöst.

$options = array(
"fields" => array("title", "content", "profile_id", "type", "name", "description", "date", "url"),
"from" => 0,
"size" => 10,
"query" => array(
($type ?
array(
"bool" => array(
"must" => array(
array("term" => array("_all" => $term)),
array("term" => array("type" => $type))
)
)
) :
array("match" => array("_all" => $term))
)
)
);