Оценка результатов в соответствии с предоставленной фразой - PullRequest
1 голос
/ 01 ноября 2010

Допустим, пользователь вводит поисковую фразу «мир во всем мире».Тем не менее, давайте также скажем, что индекс содержит как документ с заголовком «когда-нибудь мы получим мир во всем мире», так и документ с заголовком «мир во всем мире, где ты?».

Теперь есть лиспособ придать документам, начинающимся с «мира во всем мире», больший импульс, чем другим документам?Другими словами, я хотел бы, чтобы совпадения начинались с фразы, которая должна быть увеличена.Этого можно достичь с помощью Solr?

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

ИМХО, это уже внутренне сделано с помощью оценки люцены , но я не уверен.Тем не менее, вы можете настроить его.Читайте здесь (приятное место) и здесь .

0 голосов
/ 31 января 2013

Вы можете достичь чего-то близкого к тому, что хотите, применив charFilter. Влияет на входную строку перед токенизацией. В приведенном ниже примере charFilter добавит AAAA к началу поля, к которому он был применен. После этого вы сможете добавить AAAA в свой запрос, чтобы заставить Solr отдавать предпочтение фазам, соответствующим началу заголовка. Более подробную информацию об этом подходе и другие советы Solr можно найти здесь:

http://robotlibrarian.billdueber.com/tag/stupid_solr_tricks/

<fieldtype name="title_anchor" class="solr.TextField" positionIncrementGap="1000">
 <analyzer>
   <charFilter class="solr.PatternReplaceCharFilterFactory"
     pattern="^(.*)$" replacement="AAAA $1" />      
   <tokenizer class="solr.ICUTokenizerFactory"/>
     <filter class="solr.ICUFoldingFilterFactory"/>
     <filter class="solr.SynonymFilterFactory"
             synonyms="syn.txt"
             ignoreCase="true" expand="false"/>
     <filter class="solr.CJKWidthFilterFactory"/>
     <filter class="solr.CJKBigramFilterFactory"/>
 </analyzer>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...