Solrj Query - Obtenha o registro mais relevante primeiro
Eu tenho alguns documentos emSolr 4.0
. Eu quero que os registros mais relevantes sejam exibidos primeiro e depois os menos relevantes.
Por exemplo, eu tenho 3 documentos com títulos da seguinte forma -
Para a política de distribuição de rendaDistribuição de renda e políticas econômicasPolítica de distribuição de renda nos países em desenvolvimentoAgora, quando eu pergunto algo comoq=title:Income Distribution Policy
,
Eu gostaria que o documento número 3 aparecesse primeiro (como as primeiras 3 palavras são uma correspondência exata), então eu quero que o documento número 1 apareça em segundo lugar (como "Rumo" à correspondência restante), então eu quero o número 2 do documento para aparecer (como existem algumas palavras no meio).
Minhasschema.xml
se parece com isso -
<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>
EDIT 1 Debug output
"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"
EDIT 2 Modificado o fieldType
Eu usei a seguinte combinação, ainda a saída é a mesma.
StandardTokenizerFactory - autoGeneratePhraseQueries (não presente) - PorterStemFilterFactory.StandardTokenizerFactory - autoGeneratePhraseQueries = "true" - PorterStemFilterFactory.StandardTokenizerFactory - autoGeneratePhraseQueries (não presente).StandardTokenizerFactory - autoGeneratePhraseQueries = "true".WhitespaceTokenizerFactory - autoGeneratePhraseQueries (não presente) - PorterStemFilterFactory.WhitespaceTokenizerFactory - autoGeneratePhraseQueries = "true" - PorterStemFilterFactory.WhitespaceTokenizerFactory - autoGeneratePhraseQueries (não presente).WhitespaceTokenizerFactory - autoGeneratePhraseQueries = "true".