2013-10-17 49 views
2

我正在嘗試使用Solr進行多語言詞幹分析。根據官方Solr指南,我已使用LangDetectLanguageIdentifierUpdateProcessorFactory安裝語言檢測。語言是公認的,現在我有一個像一大堆動態字段:Solr檢測語言。如何跨多個description_ *字段進行搜索?

  • description_en
  • description_de
  • description_fr
  • ...

,並妥善朵朵。

現在的問題是如何在很多領域進行搜索?每次搜索多個可能的語言字段時,都會進行長時間查詢,這看起來不是一個明智的選擇。我一直在使用copyField喜歡嘗試:

<copyField source="description_*" dest="text"/>

但詞幹被丟在text場,當我做到這一點。

text字段被定義爲solr.TextFieldsolr.WhitespaceTokenizerFactory。也許我沒有正確設置text字段,或者這應該如何完成?

+0

請參閱http://wiki.apache.org/solr/SchemaXml#Copy_Fields它說: '原始文本從「源」字段發送到「目標」字段,在任何配置的分析儀始發或目的地字段被調用。' 在所有分析完成後,copyField不會從'description_ *'字段獲取標記。它將輸入到'description_ *'字段並應用爲其自己的字段類型定義的分析,這只是帶有空白標記器的TextField。所以copyField不是這個的解決方案。 – arun

+0

這可能會幫助你:http://lucene.472066.n3.nabble.com/Query-on-all-dynamic-fields-or-wildcard-field-query-td4051852.html – arun

+0

謝謝你,阿倫。我現在看到爲什麼'copyField'不起作用。第二個環節也很有幫助。所以我看到在這個時候我唯一的選擇是列出所有可能的'description_ [en | fr | de | ...]'作爲在每個查詢中搜索的字段列表。這還是可以的,我想,我只是在想,還有其他方法可以做到這一點。再次感謝您的幫助,Arun! – user2113581

回答

0

你有多種選擇:

  1. 搜索你所提到的所有領域。總是會有一些開銷:越多的字段使用,越慢的搜索將(逐漸)

  2. 嘗試識別查詢語言並僅搜索必要的字段:例如識別的和一些默認的字段。 Here you can find library for this

  3. 開發多語言定製的解決方案在一個領域,這是可能的,可以在生產according to Trey Graigner

的問題是有點老了工作,但也許這個問題的答案將幫助其他人。