2016-04-29 5 views
0

Ich benutze SOLR 5.5.0 und bemerkte unerwünschte Verhalten in Bezug auf Scoring.Solr 5 - Deaktivieren IDF Scoring

Der Suchindex ist für Personen mit Feldern für givenName und surName. Ich habe givenName etwas höher gewichtet als surName, aber bei einigen Abfragen sind die Treffer von surName höher gewichtet als die Treffer von givenName. Dies liegt an der IDF-Gewichtung.

Betrachten Sie als Beispiel die Suchzeichenfolge "James". In Bezug auf meine Gewichtung von givenName höher als surName würde ich erwarten, dass die Treffer mit givenName "James" oben auf dem Ergebnis stehen, die mit surName "James" niedriger. Wenn es jedoch 1000 Personen mit gegebenem Namen "James" und nur zehn mit surName "James" gibt, wird letzterer Gruppe die höchste Punktzahl aufgrund von idf gegeben.

Gibt es eine Möglichkeit, IDF in Solr zu deaktivieren? Alles, was ich finden kann, ist etwas über das Überschreiben von DefaultSimilarity, aber ich verstehe nicht, wie ich das mit meiner XML-Konfiguration machen kann, außerdem ist die Klasse in Lucene-5.5.0 veraltet.

Antwort

0

Wahrscheinlich wollen Sie nicht wirklich deaktivieren IDF als dann sucht nach [James Garfield] wird nicht erkennen, dass "Garfield" ist seltener als "James" und sollte daher höher als allein (als James allein).

Ich denke, was Sie fordern, ist für kombinierte IDF zwischen zwei Feldern. Der einfachste Weg, dies zu erreichen, besteht darin, ein drittes fullName Feld für die Suche zu erstellen.

In Ihrem Beispiel wäre die Dokumenthäufigkeit für "James" in fullName 1010, und die Übereinstimmung würde unabhängig von givenName = James vs. surName = James gleich ausfallen.

+0

Wenn Sie dann 'givenName' Übereinstimmungen bevorzugen, wie ursprünglich vorgesehen, würden Sie auch' givenName' mit einer Feldverstärkung abfragen. (z.B. 'q = + vollständigerName: James gegebenerName: James^2') –