2010-07-12 82 views
6

我在使用edismax處理程序執行lucene語法中的通配符搜索時遇到問題。我從主幹每晚建立Solr 4.0。Solr中的通配符搜索

像'computer'這樣的常規搜索會返回結果,但'er er'不會返回任何結果。類似的,像'co?mput?r'這樣的搜索沒有結果。當前通用搜索的唯一類型是帶有尾隨通配符的類型(如compute?或comput)。

我希望能夠在開始時使用通配符(puter)和之間(com er)進行搜索。有人可以告訴我我做錯了什麼,以及如何解決它。

謝謝。

Regards,
Imran。

回答

0

隨着edismax,領先的通配符是沒有問題的。我只是重新測試它。

中期的通配符也沒有問題。

看起來還有其他問題。你確定你在使用edismax嗎?

+0

感謝您的迴應。我使用的edismax處理程序是:http://drupal.org/files/issues/713142-solrconfig-1_0.patch 我每晚都會安裝Solr 4.0,並在將QueryType設置爲'edismax'後查詢現有索引。 請你指出我做錯了什麼?謝謝。 – 2010-07-12 16:32:57

+0

有點難以回答,但你的戰爭檔案有多大?我的drupal戰爭實際上並不支持edismax。 – Jem 2010-07-12 17:11:14

+0

我沒有使用任何war文件。我通過jar(start.jar)啓動Solr服務器並使用SolrJ進行索引和搜索。在搜索時,我將QueryType設置爲'edismax'。普通文本搜索完美無缺,只有通配符不起作用。任何想法什麼是錯的? – 2010-07-12 17:21:15

5

除非您激活reverse string filter,否則領先的通配符將不起作用。要在Solr中使用它,請將ReversedWildcardFilterFactory添加到您想要使用前導通配符搜索的字段的分析器中。

至於你的其他查詢返回0結果,嘗試使用盧克看看你的條款是如何進行分析(存儲在索引中)。如果你使用它,不要忘記考慮到阻塞的影響。

+0

感謝您的回覆。你能告訴我如何激活反向字符串過濾器嗎? – 2010-07-12 14:52:05

+0

查看我的更新,瞭解如何在solr中使用它。請告訴我們它是如何去的,因爲我從來沒有真正使用它... – 2010-07-12 15:17:20