lucene - Solr管理界面分析结果与solr搜索结果不匹配

标签 lucene solr full-text-search

Solr 中有 6 个索引文档,文本字段为“name_texts”。当字段值为“blue-cat”且搜索词为“blueCat”时,管理 UI 会突出显示字段值。但搜索查询返回 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>

Admin UI -> Analysis highlights results (screenshot)

最佳答案

我认为您的查询对您的数据不好!
我可以请你试试这样吗:

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

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

给我一些反馈! :)

关于lucene - Solr管理界面分析结果与solr搜索结果不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6514764/

相关文章:

api - Solr 可以加载原始 Lucene 索引吗?

Solr:匹配查询字符串中包含的短语

solr - 更像是 Solr 查询过滤

mysql - 使用部分引用的字符串进行全文搜索(mysql)

lucene - 在哪里可以获得 solrconfig.xml 和 schema.xml 的 XSD 架构

multithreading - Lucene如何在多线程环境下使用IndexReader?

在非索引字段上搜索 Solr 查询

mysql - MySQL 上的全文搜索,但词序必须重要

full-text-search - Sphinx 与 Haystack 的搜索性能

java - 我们可以仅在初始设置时创建一次 Lucene 索引吗?