繁体   English   中英

使用SolrBundle在Symfony2中的Solr区分大小写

[英]Solr case sensitivity in Symfony2 with SolrBundle

我一直在谷歌上搜索,试图找出如何设置查询区分大小写。 我目前正在这个github页面上使用Florian Semm的SolrBundle。 我认为这就像说$query->setCaseSensitive(false);一样简单$query->setCaseSensitive(false); 或类似的东西,但显然不是。 有任何想法吗? 我正在使用Solr4.1.6和Symfony 2.4.1,如果这有任何区别的话。

这就是我到目前为止......

$solrQuery = $this->get('solr.client.default')
                  ->createQuery('MyBundle:User')
                  ->addSearchTerm('name', $queryString)
                  ->addSearchTerm('surname', $queryString);
$solrQuery->setUseWildcard(true);

$entities = $solrQuery->getResult(); 

这显然会正确返回,但只有在查询的情况正确时才会返回。 例如,搜索“Thom”会返回包含“Thomas”的实体,但“thom”不会。

谢谢你的帮助!

您可能希望查看solr Schema ,因为可能在那里配置了分析器。 具体来说,如果在模式中配置了LowerCaseFilterFactory,它将在索引内容时将文本术语转换为小写,在查询时间也是如此。 以下示例是您可能想要查找的内容。

<fieldtype name="text" class="solr.TextField">
  <analyzer>
    ......
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldtype>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM