Solr: Regex-Fragmentierer zum Extrahieren von Absätzen verwenden

Ich habe diese Nachricht auf die Solr-Mailingliste gesetzt, aber ich versuche es auch hier, falls sich ein Solr-Experte herumtreibt.

Ich versuche, den Regex-Fragmentierer zu verwenden, und habe Schwierigkeiten, die gewünschten Ergebnisse zu erzielen. Ich versuche, Fragmente zu finden, die mit einem Wort beginnen und mit Interpunktion enden, aber aus irgendeinem Grund scheinen die Fragmente, die mir zurückgegeben werden, sehr unflexibel zu sein, obwohl ich einen großen Slop bereitgestellt habe. Hier sind die relevanten Parameter, die ich verwende. Vielleicht kann jemand herausfinden, wo ich falsch liege:

<str name="hl.fragsize">500</str>
<str name="hl.fragmenter">regex</str>
<str name="hl.regex.slop">0.8</str>
<str name="hl.regex.pattern">[\w].*{400,600}[.!?]</str>
<str name="hl">true</str>
<str name="q">chinese</str>

Dies sollte zwischen 400 und 600 Zeichen entsprechen, beginnend mit einem Wortzeichen und endend mit einem von.!?. Hier ist ein Beispiel für ein typisches Ergebnis:

. Schauen Sie sich diese Bilder an. Neun Panda-Jungen werden am Donnerstag zum ersten Mal im Südwesten Chinas ausgestellt. Sie sind weniger als ein Jahr alt. Sie haben vor kurzem aufgehört zu pflegen. Es gibt nur noch 1.600 dieser Männer in den Gebirgswäldern Zentralchinas, weitere 120 in chinesischen Zuchtstätten und Zoos. Und sie sind ungefähr 20, die außerhalb Chinas in Zoos leben. Sie existieren fast ausschließlich auf Bambus. Sie können 30 Jahre alt werden. Und diese kleinen Jungs werden irgendwann viel größer. Sie werden wachsen

Wie Sie sehen können, beginnt es mit einem Punkt und endet mit einem Wortzeichen! Es ist fast so, als ob die Fragmente einfach so herauskommen, wie sie wollen, und der Regex macht überhaupt nichts, aber die Ergebnisse sind anders, wenn ich den Gap Fragmenter verwende. In dem obigen Ergebnis sehe ich keinen Grund, warum es die vorangegangene Periode und die letzten beiden Wörter nicht hätte streifen sollen, es gibt viel Platz im Slop und im Regex-Muster. Bitte helfen Sie mir herauszufinden, was ich falsch mache ...

Danke vielmals

Kennzeiche

Antworten auf die Frage(6)

Ihre Antwort auf die Frage