2016-07-07 17 views
0

Ich arbeite daran, Standard Highlighting auf meinem Server mit Solr 4.7 zu aktivieren. Meine Dokumente enthalten (unter den anderen) die folgenden Felder:Rückgabe aller relevanten Werte für markierte mehrwertige Felder für Solr 4.7

{ 
     "id": [ 
      "fdc3833a-0e4f-4314-ba8c" 
     ],, 
     "tag": [ 
      "solr", 
      "solrJ", 
      "solrCloud" 
      "solrX" 
     ], 
     "title": "Solr question about highlighting", 
     "description": "I am working to enable Standard Highlighting on my server with Solr 4.7. My documents contain (among the others) the following.........", 
     } 

Von den drei Feldern nur „tag“ mehrwertig ist. Meine Standardkonfiguration innerhalb solrconfig.xml Datei ist:

<str name="hl">on</str> 
<str name="hl.fl">content title description tag</str> 
<str name="hl.snippets">2</str> 

Wenn ich eine Abfrage wie ausgeführt:

https://<YOUR_PATH>/select?q=solr*&wt=json&indent=true 

ich folgende Highlights:

"highlighting": { 
    "fdc3833a-0e4f-4314-ba8c": { 
      "title": [ 
      "<b>Solr</b> question about highlighting" 
      ], 
      "summary": [ 
      "I am working to enable Standard Highlighting on my server with <b>Solr</b> 4.7. My documents contain (among the others) the following........." 
      ], 
      **"tag": [ 
      "<b>Solr</b>", 
      "<b>SolrJ</b>" 
      ]** 
     } 
} 

Während ich erwarten bekomme alle Tags. Ich entdeckte, dass Solr mehrere Werte in einem mehrwertigen Feldern behandelt, da sie markierte Ausschnitte waren, also, da ich hl.snippets = 2 habe, werden nur die ersten beiden Werte angezeigt. Wie kann ich alle Werte für Tags erhalten? (offensichtlich die Anzahl der Snippets nur für die mehrwertigen Felder zu ändern ist keine akzeptable Antwort). Gibt es einen Weg in Solr 4.7, mit mehrwertigen Feldern in der Hervorhebung umzugehen?

wäre Meine Erwartungen wie eine Antwort zu haben:

"highlighting": { 
"fdc3833a-0e4f-4314-ba8c": { 
     "title": [ 
     "<b>Solr</b> question about highlighting" 
     ], 
     "summary": [ 
     "I am working to enable Standard Highlighting on my server with <b>Solr</b> 4.7. My documents contain (among the others) the following........." 
     ], 
     **"tag": [ 
     "<b>Solr</b>", 
     "<b>SolrJ</b>", 
     "<b>SolrCloud</b>", 
     "<b>SolrX</b>" 
     ]** 
    } 
} 

Antwort

1

Nachdem sie in der Dokumentation suchen, und einige Tests laufen, fand ich heraus, dass der Parameter hl.preserveMulti in solrconfig.xml Einstellung:

<str name="hl.preserveMulti">true</str> 

bewahrt nicht nur die Reihenfolge der Werte in einem multiValue-Dokument, wie die Dokumente sagen, sondern es gibt auch alle Werte des mehrwertigen Dokuments in ihrer ursprünglichen Reihenfolge zurück. Also, wenn wir setzen die Parameter oben erwähnt, und wir haben das folgende Dokument in unserem Index:

{ 
     "id": [ 
      "fdc3833a-0e4f-4314-ba8c" 
     ],, 
     "tag": [ 
      "solr", 
      "solrJ", 
      "solrCloud" 
      "solrX", 
      "notRelevantTag" 
     ], 
     "title": "Solr question about highlighting", 
     "description": "I am working to enable Standard Highlighting on my server with Solr 4.7. My documents contain (among the others) the following.........", 
     } 

die Abfrage:

https://<YOUR_PATH>/select?q=solr*&wt=json&indent=true 

gibt mir ein hervorgehobenes Ergebnis wie:

"highlighting": { 
    "fdc3833a-0e4f-4314-ba8c": { 
      "title": [ 
      "<b>Solr</b> question about highlighting" 
      ], 
      "summary": [ 
      "I am working to enable Standard Highlighting on my server with <b>Solr</b> 4.7. My documents contain (among the others) the following........." 
      ], 
      **"tag": [ 
      "<b>Solr</b>", 
      "<b>SolrJ</b>", 
      "<b>SolrCloud</b>", 
      "<b>SolrX</b>", 
      "notRelevantTag" 
      ]** 
     } 
    }