Hervorhebung übereinstimmender Ergebnisse für alle Felder

8

Ich möchte, dass die übereinstimmenden Ergebnisse hervorgehoben werden. Das funktioniert für mich, wenn ich den Feldnamen erwähne und den hervorgehobenen Text zurückgebe, aber wenn ich das Feld als "_all" gebe, gibt es keinen Wert zurück. Das funktioniert für mich:

%Vor%

Dies gibt den erwarteten Wert wie folgt zurück: [Hervorhebung] = & gt; stdClass Objekt ([my_field] = & gt; Array ([0] = & gt; stackoverflow ist die beste Website für Technikfreaks))

Aber wenn ich das gebe:

%Vor%

Ich bekomme null Wert / kein Ergebnis.

%Vor%

Wie bekomme ich es in irgendeinem Feld zur Wirkung, so dass ich den Feldnamen nicht erwähnen muss?

    
Ninja 27.11.2011, 14:52
quelle

4 Antworten

5

Sie müssen das _all-Feld als gespeichert abbilden. Die folgende Abbildung sollte den Zweck erfüllen. Beachten Sie jedoch, dass dies zur Indexgröße beiträgt.

%Vor%     
Joel Abrahamsson 05.12.2011, 16:36
quelle
27

Damit Sie _all nicht als gespeichertes Feld in Ihrem Index hinzufügen müssen

Eine alternative schnelle Lösung: Verwenden Sie * anstelle von _all :

%Vor%     
Bosh 16.05.2014 05:01
quelle
16

Wenn Sie ES 2.x verwenden, müssen Sie die Option require_field_match auf false setzen, da Änderungen vorgenommen , aus dem doc

  

Der Standardwert für die Option require_field_match wurde von false in true geändert, was bedeutet, dass die Textmarker standardmäßig nur die Felder berücksichtigen, die abgefragt wurden.

     

Dies bedeutet, dass bei der Abfrage des Feldes _all versucht wird, auf zu markieren   Jedes Feld außer _all erzeugt keine markierten Snippets.

%Vor%     
ChintanShah25 18.12.2015 03:19
quelle
-1

Diese Bibliothek bietet Funktionen für die Hervorhebung von Abfragen, einschließlich der Hervorhebung für alle Felder. Die README erklärt, wie man einen ElasticSearch-Index mit _all field stored etc erstellt: Ссылка

    
Ninja 21.12.2011 10:45
quelle

Tags und Links