2013-06-29 104 views
1

我在Heroku上使用WebSolr Cobalt。 如果我搜索的是第一個字母還是全部單詞,但是沒有單詞的部分部分,則搜索起作用。Heroku上的Solr配置

任何幫助?

+0

你能分享你的'schema'和搜索字詞,可能與您預期什麼是不工作的例子嗎? –

回答

2

要啓用部分單詞搜索

必須編輯本地Schema.xml文件,通常在Solr的/ config中,添加兩種:

  1. NGramFilterFactory
  2. EdgeNGramFilterFactory

這是我的樣子 - sample schema.xml

EdgeNGram

我去與Edgen公司的選擇。它不允許在單詞中間搜索,但它允許從單詞的開頭開始進行部分單詞搜索。這會減少你不想要的誤報/比賽,表現更好,並且通常不會被用戶錯過。另外,我喜歡minGramSize = 2,因此您必須輸入最少2個字符。有些人把它設置爲3.

一旦你的本地設置和工作,你必須編輯websolr使用的schema.xml,否則你會得到缺省的行爲,即使你有爲您的模型配置全文搜索。

要編輯websolr schema.xml中

  1. 轉到Heroku的在線儀表板爲您的應用程序
  2. 轉到資源選項卡,然後單擊Websolr附加
  3. 點擊索引下的默認鏈接
  4. 單擊高級配置鏈接
  5. 從本地粘貼您的schema.xml,包括Ngram令牌的配置選擇器(上面提到)。保存。
  6. 在「配置您的Heroku應用程序」框中複製鏈接,然後將其粘貼到終端中,以在您的heroku配置中設置您的WEBSOLR_URL鏈接。
  7. 點擊索引狀態鏈接以獲得漂亮的統計數據,看看你是快速還是慢速運行。
  8. 重新索引一切

Heroku的運行耙太陽黑子:REINDEX [5000]

  • 不要使用Heroku的運行耙太陽黑子:Solr的:重新索引 - 它已被棄用,不接受參數並且速度較慢
  • 默認批量大小爲50,大多數人建議使用1000,但我已經看到明顯更快的結果(每秒1000行,而不是500個左右),通過將其猛增到5000+

把它帶到一個新的水平

5 ways to speed up indexing

+0

非常感謝!你應該得到如此多的認可。我一直在與這個爭論了很久!太棒了! – maxhm10