Passende Phrase mit Sitecore ContentSearch API

9

Ich verwende Sitecore 7.2 mit einem benutzerdefinierten Lucene-Index und Linq. Ich muss den genauen Übereinstimmungen zusätzliches (maximales) Gewicht geben.

Beispiel: Ein Benutzer sucht nach "irgendwo über dem Regenbogen"

Die Ergebnisse sollten Elemente enthalten, die das Wort "Regenbogen" enthalten, aber Elemente, die den genauen und vollständigen Ausdruck "irgendwo über dem Regenbogen" enthalten, sollten ein maximales Gewicht erhalten. Sie werden den Benutzern als die besten Ergebnisse angezeigt. ein Gegenstand, der den gesamten Satz enthält, sollte schwerer wiegen als ein Gegenstand, der 100 Mal das Wort "Regenbogen" enthält.

Ich muss möglicherweise die Ranking-Logik außerhalb der ContentSearch-API handhaben, indem ich "Phrasenübereinstimmungen" getrennt von "Wildcard-Übereinstimmungen" sammle, und das ist in Ordnung.

Hier ist mein bestehender Code, der der Kürze wegen gekürzt wurde. Der Code funktioniert, aber exakte Wortgruppenübereinstimmungen werden nicht wie beschrieben behandelt.

%Vor%

Wie kann ich einen genauen Phrasenabgleich durchführen und ist dies mit der Sitecore.ContentSearch.Linq-API möglich?

    
betitall 14.06.2016, 18:53
quelle

2 Antworten

0

Beantworte meine eigene Frage. Das Problem lag in der Klammersyntax. Es sollte

sein %Vor%

statt

%Vor%

Die Boosts wurden nicht beobachtet.

    
betitall 17.08.2016, 20:19
quelle
0

Ich denke, wenn Sie das Folgende tun, wird es das lösen:

  • Teilen Sie Ihre Suchzeichenfolge auf Leerzeichen
  • Erstellen Sie für jeden Split ein Prädikat mit einem gleichen Boost-Wert,
  • Erstellen Sie ein zusätzliches Prädikat mit der vollständigen Suchzeichenfolge und mit höherem Boost-Wert
  • Kombiniere all diese Prädikate in einem "OR" Prädikat.

Ich empfehle Ihnen auch, Folgendes zu überprüfen:

Sitecore Solr-Suchwert

Ссылка

    
Mohammed Syam 16.06.2016 21:35
quelle

Tags und Links