Результаты анализа интерфейса администратора Solr и результаты поиска Solr не совпадают - PullRequest
4 голосов
/ 29 июня 2011

В Solr есть 6 проиндексированных документов с текстовым полем "name_texts".Пользовательский интерфейс администратора выделяет значение поля, когда оно «blue-cat», а поисковый термин - «blueCat».Но поисковый запрос возвращает 0 результатов.Почему это происходит?

http://localhost:8982/solr/select?q=name_texts:blueCat

<response>
  <lst name= "responseHeader">
    <int name= "status">0</int>
    <int name= "QTime">2</int>
    <lst name= "params">
      <str name= "q">name_texts:blueCat</str>
    </lst>
  </lst>
  <result name= "response" numFound= "0" start= "0" />
</response>

http://localhost:8982/solr/select?q=*:*

<response>                                                                                                                                                                                                                             
  <lst name= "responseHeader">                                                                                                                                                                                                         
    <int name= "status">0</int>                                                                                                                                                                                                        
    <int name= "QTime">2</int>                                                                                                                                                                                                         
    <lst name= "params">                                                                                                                                                                                                               
      <str name= "q">*:*</str>                                                                                                                                                                                                         
    </lst>                                                                                                                                                                                                                             
  </lst>                                                                                                                                                                                                                               
  <result name= "response" numFound= "6" start= "0">                                                                                                                                                                                   
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106216</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>blue-cat</str>                                                                                                                                                                                                            
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106217</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>Blue_cat</str>                                                                                                                                                                                                            
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106218</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>blueCat</str>                                                                                                                                                                                                             
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106219</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>blue_cat1</str>                                                                                                                                                                                                           
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106220</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>BlueCat4</str>                                                                                                                                                                                                            
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
    <doc>                                                                                                                                                                                                                              
      <str name= "id">Track 106221</str>                                                                                                                                                                                               
      <arr name= "name_texts">                                                                                                                                                                                                         
        <str>blue-Cat45</str>                                                                                                                                                                                                          
      </arr>                                                                                                                                                                                                                           
    </doc>                                                                                                                                                                                                                             
  </result>                                                                                                                                                                                                                            
</response>    

Это schema.xml

<fieldType name="text" class="solr.TextField" omitNorms="false">                                                                                                                                                                       
  <analyzer type="index">                                                                                                                                                                                                              
    <tokenizer class="solr.StandardTokenizerFactory"/>                                                                                                                                                                                 
    <filter class="solr.StandardFilterFactory"/>                                                                                                                                                                                       
    <filter class="solr.WordDelimiterFilterFactory"                                                                                                                                                                                    
            generateWordParts="1"                                                                                                                                                                                                      
            generateNumberParts="1"                                                                                                                                                                                                    
            catenateWords="1"                                                                                                                                                                                                          
            catenateNumbers="1"                                                                                                                                                                                                        
            catenateAll="0"                                                                                                                                                                                                            
            preserveOriginal="1"                                                                                                                                                                                                       
            />                                                                                                                                                                                                                         
    <filter class="solr.LowerCaseFilterFactory"/>                                                                                                                                                                                      
    <filter class="solr.StopFilterFactory" words="stopwords.txt"                                                                                                                                                                       
            ignoreCase="true"/>                                                                                                                                                                                                        
    <filter class="solr.ISOLatin1AccentFilterFactory"/>                                                                                                                                                                                
    <filter class="solr.TrimFilterFactory" />                                                                                                                                                                                          
    <filter class="solr.EdgeNGramFilterFactory"                                                                                                                                                                                        
            minGramSize="2"                                                                                                                                                                                                            
            maxGramSize="25" />                                                                                                                                                                                                        
  </analyzer>                                                                                                                                                                                                                          
  <analyzer type="query">                                                                                                                                                                                                              
    <tokenizer class="solr.StandardTokenizerFactory"/>                                                                                                                                                                                 
    <filter class="solr.StandardFilterFactory"/>                                                                                                                                                                                       
    <filter class="solr.WordDelimiterFilterFactory"                                                                                                                                                                                    
            generateWordParts="1"                                                                                                                                                                                                      
            generateNumberParts="1"                                                                                                                                                                                                    
            catenateWords="0"                                                                                                                                                                                                          
            catenateNumbers="0"                                                                                                                                                                                                        
            catenateAll="0"                                                                                                                                                                                                            
            preserveOriginal="1"                                                                                                                                                                                                       
            />                                                                                                                                                                                                                         
    <filter class="solr.LowerCaseFilterFactory"/>                                                                                                                                                                                      
    <filter class="solr.StopFilterFactory" words="stopwords.txt"                                                                                                                                                                       
            ignoreCase="true"/>                                                                                                                                                                                                        
    <filter class="solr.ISOLatin1AccentFilterFactory"/>                                                                                                                                                                                
    <filter class="solr.TrimFilterFactory" />                                                                                                                                                                                          
  </analyzer>

Интерфейс администратора -> Анализ выделяет результаты (скриншот)

1 Ответ

0 голосов
/ 03 июня 2014

Я думаю, что ваш запрос не подходит к вашим данным!Могу я попросить вас попробовать вот так:

- field q  --> *:*
- field fq --> nam-texts:*blueCat*

URL
http://localhost:8983/solr/select?q=*%3A*&fq=name_texts%3A*blueCat*&indent=true

Оставьте свой отзыв!:)

...