Solrj Query - сначала получите самую актуальную запись
У меня есть несколько документов вSolr 4.0
, Я хочу, чтобы сначала отображались наиболее релевантные записи, а затем менее релевантные.
Например, у меня есть 3 документа с названиями следующим образом:
На пути к политике распределения доходовРаспределение доходов и экономическая политикаПолитика распределения доходов в развивающихся странахТеперь, когда я запрашиваю что-то вродеq=title:Income Distribution Policy
,
Я бы хотел, чтобы документ № 3 отображался первым (так как первые 3 слова являются точным соответствием), затем я хочу, чтобы документ № 1 отображался вторым (как, например, «Навстречу» оставшемуся совпадению), затем я хочу документ № 2 чтобы показать (как есть несколько слов между ними).
мойschema.xml
выглядит так -
<types>
<fieldType name="search" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="title" type="search" indexed="true" stored="true"/>
</fields>
РЕДАКТИРОВАТЬ 1 Отладочный вывод
"rawquerystring": "title:Income Distribution Policy",
"querystring": "title:Income Distribution Policy",
"parsedquery": "title:incom title:distribut title:polici",
"parsedquery_toString": "title:incom title:distribut title:polici"
РЕДАКТИРОВАТЬ 2 Изменено fieldType
Я использовал следующую комбинацию, но результат остается прежним.
StandardTokenizerFactory - autoGeneratePhraseQueries (не присутствует) - PorterStemFilterFactory.StandardTokenizerFactory - autoGeneratePhraseQueries = "true" - PorterStemFilterFactory.StandardTokenizerFactory - autoGeneratePhraseQueries (отсутствует).StandardTokenizerFactory - autoGeneratePhraseQueries = "true".WhitespaceTokenizerFactory - autoGeneratePhraseQueries (не присутствует) - PorterStemFilterFactory.WhitespaceTokenizerFactory - autoGeneratePhraseQueries = "true" - PorterStemFilterFactory.WhitespaceTokenizerFactory - autoGeneratePhraseQueries (отсутствует).WhitespaceTokenizerFactory - autoGeneratePhraseQueries = "true".