2016-02-11 3 views
0

В настоящее время я использую solr5.4.1. While Indexing работает нормально, поиск данных на основе case-insensitive не работает.Solr регистр без учета индексации и поиска?

Say Я создал проекты с кодами [ "AnandProjectp1", "AnandProjectp2", "AnandProjectp3"] и имена [ "Project1", "Проект2", "Project3"]

но когда я ищу код, начинающийся с q = project_code: a * или project_name: p * Я получаю 0 результатов.

Мои Schema.xml is`

<field name="company_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="company_public_id" type="string" stored="true" positionIncrementGap="100"/> 
<field name="company_name" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="company_description" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="user_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="user_company_id" type="string" stored="true" positionIncrementGap="100"/> 
<field name="user_first_name" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="user_last_name" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="user_email_id" type="string" indexed="true" stored="true" positionIncrementGap="100" sortMissingLast="true" omitNorms="true" ignoreCase="true"/> 
<field name="user_code" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="user_public_id" type="String" stored="true" positionIncrementGap="100"/> 
<field name="project_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="project_company_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="project_code" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="project_name" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="project_description" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="project_public_id" type="string" stored="true" positionIncrementGap="100"/> 
<field name="template_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="template_company_id" type="tint" stored="true" positionIncrementGap="100"/> 
<field name="template_public_id" type="string" stored="true" positionIncrementGap="100"/> 
<field name="template_description" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="template_name" type="text_en_splitting" indexed="true" stored="true" positionIncrementGap="100"/> 




<fieldType name="string" class="solr.StrField"> 
    <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory"/>          
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory"/>       
    </analyzer> 
</fieldType> 
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/> 
<fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>   
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
    <filter class="solr.LowerCaseFilterFactory"/>   
    <filter class="solr.PorterStemFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>   
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> 
    <filter class="solr.LowerCaseFilterFactory"/>   
    <filter class="solr.PorterStemFilterFactory"/> 
    </analyzer> 
</fieldType>  


`

схема была взята из примера schema.xml приведены в примерах

+0

вы ищете дик поиск карты ... и это может быть достигнуто за счетом chnaging в analzer или фильтры –

ответ

0

ожно попробовать следуя FieldType

<fieldType name="wildCardType" class="solr.TextField" sortMissingLast="true" omitNorms="true" positionIncrementGap="100"> 
<analyzer type="index"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50"/> 
</analyzer> 
<analyzer type="query"> 
<tokenizer class="solr.KeywordTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
</fieldType> 

, а также chnage в

<field name="project_code" type="wildCardType" indexed="true" stored="true" positionIncrementGap="100"/> 
<field name="project_name" type="wildCardType" indexed="true" stored="true" positionIncrementGap="100"/> 
+0

пытавшихся не работает получать те же результаты –

+0

сделали перезапуск сервера. .. и вам нужно переиндексировать данные ... после изменения schema.xml –

+0

да, переиндексирован и перезапущен сервер –

Смежные вопросы