2017-07-09 8 views
1

Ich versuche, eine feceted Suche mit elastischen 5.5 zu bauen (mit elastischem 2. * Ich fand Informationen darüber, wie dies zu tun, aber in 5.5 kann ich nicht)Facetten in elastischen 5.5

nicht etwas Ungewöhnliches, speichern ähnliche Items, die ich einen Hinweis auf den Betrag anzeigen möchte, wenn der Benutzer eine Eigenschaft auswählen möchte. Image for visualisation

Datensatz Beispiel:

[ 
    { 
    "id" : "978-0641723445", 
    "cat" : ["book","hardcover"], 
    "name" : "The Lightning Thief", 
    "author" : "Rick Riordan", 
    "series_t" : "Percy Jackson and the Olympians", 
    "sequence_i" : 1, 
    "genre_s" : "fantasy", 
    "inStock" : true, 
    "price" : 12.50, 
    "pages_i" : 384 
    } 
, 
    { 
    "id" : "978-1423103349", 
    "cat" : ["book","paperback"], 
    "name" : "The Sea of Monsters", 
    "author" : "Rick Riordan", 
    "series_t" : "Percy Jackson and the Olympians", 
    "sequence_i" : 2, 
    "genre_s" : "fantasy", 
    "inStock" : true, 
    "price" : 6.49, 
    "pages_i" : 304 
    } 
, 
    { 
    "id" : "978-1857995879", 
    "cat" : ["book","paperback"], 
    "name" : "Sophie's World : The Greek Philosophers", 
    "author" : "Jostein Gaarder", 
    "sequence_i" : 1, 
    "genre_s" : "fantasy", 
    "inStock" : true, 
    "price" : 3.07, 
    "pages_i" : 64 
    } 
, 
    { 
    "id" : "978-1933988177", 
    "cat" : ["book","paperback"], 
    "name" : "Lucene in Action, Second Edition", 
    "author" : "Michael McCandless", 
    "sequence_i" : 1, 
    "genre_s" : "IT", 
    "inStock" : true, 
    "price" : 30.50, 
    "pages_i" : 475 
    } 
] 

Dank!

+0

Sind Sie auf der Suche nach diesem? https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html – JiFus

+0

Nein, mein Cluster ist up und runnig. Ich möchte nur die Aggregation machen – IronMan323

+0

Dann suchen Sie das? https://www.elastic.co/guide/en/elasticsearch/reference/current/_executing_aggregations.html – JiFus

Antwort

1

Sie müssen nur aggs anstelle von Facetten verwenden. Aggregationen sind viel mächtiger als Facetten.

Zum Beispiel:

GET index/_search 
{ 
    "aggs" : { 
     "countries" : { 
      "terms" : { "field" : "country" } 
     }, 
     "types" : { 
      "terms" : { "field" : "type" } 
     } 
    } 
} 

Dann, wenn ein Benutzer klicken Sie auf „Facette“, nur eine Filterklausel innerhalb einer Bool Abfrage hinzufügen (dies wird alle Facetten zählen aktualisieren) oder eine post_filter in dem nur die Filter Ergebnisse (wirkt sich nicht auf Aggregationen aus).

+0

Ich kann kein gutes Beispiel für Aggs finden, die auf paar Felder einzeln aggregieren (Ich werde die Ergebnisse nach zählen wollen Länder und nach Typ zum Beispiel) – IronMan323

+0

Ich habe mit einem Beispiel aktualisiert – dadoonet

0

, wenn der Spalt Text ist, müssen Sie „.keyword“ zu behandeln Fälle von Ländernamen, wo es viele Worte verwenden (‚El Salvador‘, ‚Vereinigte Staaten von Amerika‘, etc)

GET index/_search 
{ 
    "aggs" : { 
     "countries" : { 
      "terms" : { "field" : "country.keyword" } 
     } 
    } 
}