2017-12-07 3 views
0

Ich habe ein dynamisches Textfeld bar_* in meinem Index und möchte Solr Highlights für dieses Feld zurückgeben. Also, was ich laufen soll:Solr Hervorhebung funktioniert nicht mit mehreren Feldern hl.fl, wenn dynamisches Feld vorhanden ist

q=gold&hl=true&hl.fl=bar_* 

Es funktioniert wie erwartet, aber falls ich fügen Sie einige weitere Felder hl.fl es nicht mehr funktioniert. Z.B.

q=gold&hl=true&hl.fl=bar_*,foo 

Hinweise:

  • bar_* und foo Felder sind im Index/schema und es gibt hier keinen Fehler.
  • nur Neuschreiben Anfrage als q=gold&hl=true&hl.fl=bar_*&hl.fl=foo oder q=gold&hl=true&hl.fl=bar_* foo hilft nicht.
  • Ich habe keine Fehler in Solr JIRA zu diesem Thema gefunden.

Hat jemand eine Idee, wie man das beißt. Die möglichen Abhilfen, die ich sehe, sind:

  1. Verwenden Sie hl.fl=*. Aber dieses ist nicht gut für die Leistung.
  2. Geben Sie explizit alle möglichen Feldnamen für mein dynamisches Feld an. Aber das mag ich überhaupt nicht.
+0

Sind Sie sicher, dass Sie foo Feld im Index haben? – Mysterion

Antwort

0

versuchen

q=gold&hl=true&hl.fl=bar_*&hl.fl=foo 
+0

Vielen Dank für dieses Code-Snippet, das eine begrenzte, sofortige Hilfe bieten kann. Eine [richtige Erklärung] (https://meta.stackexchange.com/q/114762) würde ihren langfristigen Wert erheblich verbessern, indem sie zeigt, warum dies eine gute Lösung für das Problem ist und es für zukünftige Leser mit anderen nützlicher machen würde , ähnliche Fragen. Bitte bearbeiten Sie Ihre Antwort, um einige Erklärungen hinzuzufügen, einschließlich der von Ihnen getroffenen Annahmen. – Melebius

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/18183074) – Rabbid76

0

Nach in Solr Quellen Graben (org.apache.solr.highlight.SolrHighlighter#getHighlightFields) Ich habe eine Abhilfe für dieses gefunden. Wie es scheint, interpretiert Solr hl.fl Inhalt als ein reguläres Ausdrucksmuster. So habe ich hl.fl wie spezifiziert:

hl.fl=bar_*|foo 

I.e. Verwenden Sie | anstelle von Komma. Das hat perfekt für mich funktioniert.

Btw, ich habe im Internet keine Dokumentation gefunden.

Verwandte Themen