Bei der Sortierung nach einem String-Feld mit mehreren Wörtern teilt Elasticsearch den String-Wert auf und verwendet min oder max als Sortierwert. I.E .: Bei Sortierung eines Feldes mit dem Wert "Auge des Tigers" in aufsteigender Reihenfolge lautet der Sortierwert: "Auge" und bei absteigender Sortierung lautet der Wert: "Tiger".Elasticsearch-Sortierung nach String liefert keine erwarteten Ergebnisse
Lets sagen, ich habe "Auge des Tigers" und "Rad des Todes" als Einträge in meinem Index, wenn ich eine aufsteigende Sortierung auf diesem Feld mache, würde ich erwarten, "Auge des Tigers" zuerst zu sein, da "E" vor "W" steht, aber was ich sehe, wenn ich auf diesem Feld sortiere, kommt "Wheel of Death" zuerst, da "D" der minimale Wert dieses Ausdrucks ist und "E" das min Wert von "Auge des Tigers".
Kann jemand dieses Verhalten abstellen und nur eine regelmäßige Sortierung für dieses Zeichenfeld zulassen?
wie ist das Feld zugeordnet? Klingt wie in Stücke zerstückelt, nicht als ganze Saite analysiert. Sie benötigen möglicherweise '' '" index ":" not_analyzed "' '' – mconlin
Das Feld wird als String zugeordnet. Also müsste ich das grundsätzlich für jedes Feld tun, das ich nach mehreren Begriffen sortieren wollte? Ich habe etwas mehr gegraben und stieß auf dieses: http://stackoverflow.com/questions/10583013/why-elasticsearch-not-analysed-field-is-split-into-terms, das ähnlich klingt, was Sie vorschlagen. Ist das der einzige Weg in Elasticsearch? es fühlt sich einfach ziemlich klobig an – willz
Hier ist ein hilfreicher Blogbeitrag zum Thema http://awesomism.co.uk/sorting-string-fields-with-elasticsearch/ – Ryan