我正在使用Solr,我想知道是否可以在查詢中使用LIKE子句。例如,我想知道所有標題中帶有「紐約」的組織。在SQL中,這將被寫爲像名稱LIKE'紐約%'。Solr使用LIKE子句查詢
我的問題 - 你如何在Solr中編寫一個LIKE查詢?
我正在使用SolrNet庫,如果這有所作爲。
我正在使用Solr,我想知道是否可以在查詢中使用LIKE子句。例如,我想知道所有標題中帶有「紐約」的組織。在SQL中,這將被寫爲像名稱LIKE'紐約%'。Solr使用LIKE子句查詢
我的問題 - 你如何在Solr中編寫一個LIKE查詢?
我正在使用SolrNet庫,如果這有所作爲。
您只需搜索「紐約」,但首先您需要正確配置您的現場分析儀。例如,您可能希望從default Solr schema中定義的字段類型開始,如text_general
。該字段類型將在空格和其他常用單詞分隔符上標記化,然後應用停用詞的過濾器,然後小寫這些術語以使搜索不區分大小寫。
有關analyzers in the Solr wiki的更多信息:
我有複製粘貼text_general從默認collection1 schema.xml到我的項目,但搜索沒有奏效。我正在嘗試在字符串中搜索「熱門」「在迪拜熱嗎?」 – 2013-11-27 05:23:13
如果我在Solr管理中分析它,它在那裏工作,但如果我在管理>搜索它沒有搜索 – 2013-11-27 05:25:17
如果您使用的是solr 3.1或更新版本,請查看支持通配符查詢的Extended DisMax Query Parser
。您可以在請求處理程序配置中使用<str name="defType">edismax</str>
來啓用它。
然後,您可以使用像title:New York*
這樣的查詢,其行爲與使用like子句的查詢具有相同的行爲。我的答案和接受的答案之間的主要區別是,您甚至可以使用通配符搜索單詞的片段。例如New Yorkers
在這種情況下會匹配。 不幸的是,即使您使用的是LowerCaseFilterFactory
,也可能會遇到區分大小寫的查詢問題。看看here瞭解更多。由於SOLR-2438問題已得到解決,因此大多數問題將在solr 3.6版本中解決。
你可以檢查http://stackoverflow.com/questions/3088401/substring-matches-within-solr – naresh 2012-01-18 09:37:40