使用LIKE子句进行Solr查询

Mar*_*sel 8 lucene solr solrnet edismax

我正在使用Solr,我想知道是否可以在查询中使用LIKE子句.例如,我想知道标题中所有"纽约"的组织.在SQL中,这将被写成Name LIKE'New York%'.

我的问题 - 你如何在Solr中编写一个LIKE查询?

我正在使用SolrNet库,如果这有所不同.

Mau*_*fer 7

您只需搜索"纽约",但首先需要正确配置您的现场分析仪.例如,您可能希望以类似于默认Solr架构中text_general定义的字段类型开头.此字段类型将在空格和其他常用字词分隔符上进行标记,然后应用停用词过滤器,然后小写这些字词以使搜索不区分大小写.

有关Solr wiki中分析器的更多信息.


jav*_*nna 6

如果您使用的是solr 3.1或更新版本,请查看Extended DisMax Query Parser支持通配符查询的内容.您可以<str name="defType">edismax</str>在请求处理程序配置中使用它.

然后,您可以使用title:New York*与具有like子句的查询具有相同行为的查询.我的答案和被接受的答案之间的主要区别在于您甚至可以使用通配符搜索单词的片段.例如New Yorkers,在这种情况下匹配.不幸的是,即使你正在使用,也可能会遇到区分大小写的查询问题LowerCaseFilterFactory.看看这里了解更多.自SOLR-2438问题解决以来,大多数问题都将通过solr 3.6版本修复.