Solr сортировка пространства - PullRequest
0 голосов
/ 13 февраля 2011

solr сортирует строки с пробелом в качестве первого. если он должен сортировать «сим», «альберт», «бим». результаты:

сим альберт бим

, поскольку у сима есть место в начале, он будет первым. ниже моя схема:

<fieldType name="textName" class="solr.TextField"  positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.CJKTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
    <filter class="solr.TrimFilterFactory" updateOffsets="true" />
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.CJKTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
  </analyzer>
</fieldType>


 <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.TrimFilterFactory" updateOffsets="true" />
     <filter class="solr.PatternReplaceFilterFactory"
                pattern="([^a-z])" replacement="" replace="all"
        /> 
      </analyzer>
    </fieldType>

   <field name="name" type="textName" indexed="true" stored="true" />
   <field name="nameSort" type="string" indexed="true" stored="false"/>
   <field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>
 <copyField source="name" dest="nameSort"/> 
   <copyField source="name" dest="alphaNameSort"/>
...