In need to score partial match in NAME field higher than exact match in
INFOTEXT field.Actually I need to sort my SOLR result based on following
five conditions

1.First, results with a whole word match on the first or second word in the
NAME go on top.

2.Then, results with a whole word match elsewhere in the NAME.

3.Then, results with a partial word match anywhere in the NAME.

4.Then, results with a whole word match in the INFOTEXT.

5.Finally, results with a partial word match in the INFOTEXT.

 I have added descriptionExact field for INFOTEXT and titleExact field for
NAME.

For this I have added four fields like
titleExact,titlePartial,descriptionExact,DescriptionPartial and boosted
titleExact score higher than all others.

But I am not getting result as expected.

Following are the field definitions for exact and partial field


<fieldType name="text_general" class="solr.TextField"
positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <charFilter class="solr.MappingCharFilterFactory"
mapping="mapping-ISOLatin1Accent.txt"/>
      <tokenizer class="solr.KeywordTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <charFilter class="solr.MappingCharFilterFactory"
mapping="mapping-ISOLatin1Accent.txt"/>
      <tokenizer class="solr.KeywordTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" expand="true"
ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
  </fieldType>
  <fieldType name="text_general_partial" class="solr.TextField"
positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <charFilter class="solr.MappingCharFilterFactory"
mapping="mapping-ISOLatin1Accent.txt"/>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 <filter class="solr.DelimitedPayloadTokenFilterFactory" delimiter="$"
encoder="float"/>
 <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true"
synonyms="synonyms.txt"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
      <filter class="solr.WordDelimiterGraphFilterFactory"
catenateNumbers="1" generateNumberParts="1" protected="protwords.txt"
splitOnCaseChange="1" generateWordParts="0" preserveOriginal="1"
catenateAll="0" catenateWords="1"/>
 <filter class="solr.EdgeNGramFilterFactory" maxGramSize="15"
minGramSize="3"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <charFilter class="solr.MappingCharFilterFactory"
mapping="mapping-ISOLatin1Accent.txt"/>
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 <filter class="solr.DelimitedPayloadTokenFilterFactory" delimiter="$"
encoder="float"/>
      <filter class="solr.SynonymFilterFactory" expand="true"
ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt"
ignoreCase="true"/>
      <filter class="solr.WordDelimiterGraphFilterFactory"
catenateNumbers="1" generateNumberParts="1" protected="protwords.txt"
splitOnCaseChange="1" generateWordParts="0" preserveOriginal="1"
catenateAll="0" catenateWords="1"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
    </analyzer>
  </fieldType>

Any help will be appreciated



--
Sent from: https://lucene.472066.n3.nabble.com/Solr-User-f472068.html

Reply via email to