2016-08-04 10 views
0

Gemäß unserer Geschäftsanforderung muss ich den vollständigen Textkörper indizieren (z. B. für eine Nachrichtenmeldung), aber im Solr-Abfrageergebnis muss ich eine Vorschau anzeigen Text (sagen wir, zuerst 400 Zeichen), um an die Zielnachrichtenseite zu binden.Solr So speichern Sie eine begrenzte Menge an Text anstelle von Körper

Wie ich weiß gibt es 2 Optionen in der Schemadatei für jedes Feld gespeichert = false/true. Nur so kann ich ab jetzt sehen, dass ich es auf true setze und den gesamten Story-Body in result nehme und dann den Text manuell auslese, aber das scheint nicht praktisch zu sein, weil (1) GBs Speicherplatz auf der Disc belegen wird Speicherung von Ganzkörper und (2) die JSON-Antwort wird sehr schwer. (Das Abfrageergebnis kann 40K/50K-Storys zurückgeben).

Ich weiß auch über die Begrenzung der Anzahl der Datensätze, aber aus irgendwelchen Gründen benötigen wir sofort vollständige Ergebnisse.

Haben Sie Hilfe, um diese Anforderung effizient zu erfüllen?

Antwort

0

Um nur 400 Zeichen in der Nachrichtenübersicht anzuzeigen, können Sie einfach Solr Highlighting Feature verwenden und die Anzahl der Snippets und deren Größe angeben. Zum Beispiel für Standard highlighter haben Sie Parameter:

hl.snippets: Gibt maximale Anzahl der markierten Schnipsel pro Feld zu erzeugen. Es ist möglich, eine beliebige Anzahl von Schnipsel von Null auf diesen Wert zu generieren. Dieser Parameter akzeptiert Überschreibungen pro Feld.

hl.fragsize: Gibt die Größe der zu berücksichtigenden Fragmente in Zeichen an. 0 gibt an, dass keine Fragmentierung berücksichtigt werden sollte und der gesamte Feldwert verwendet werden sollte. Dieser Parameter akzeptiert Überschreibungen pro Feld.

Wenn Sie indizieren alles wollen, aber speichern nur einen Teil des Textes können Sie die Lösung folgen beraten here in Solr Gemeinschaft.