2013-11-27 63 views
0

我對Apache Solr有以下問題:Apache Solr - ID字段和字段前綴

a)ID字段必須是唯一的。有任何格式限制嗎?到目前爲止,我只是使用了我希望使用Solr進行搜索的MySQL數據庫中的ID。

b)我已經讀過關於字段前綴的內容,比如i_fieldname是一個整數值。字段前綴是否給我提供任何速度增益?他們建議使用? c)如果ID是一個整數,我是否應該在ID字段前綴?

回答

0

獨特的領域只需要是獨一無二的。它可以是一個String,一個int,一個float(雖然我不會建議,因爲浮點數是相當不精確的)或任何其他不同的值。使用數據庫中的ID是一個很好的解決方案,因爲它允許您輕鬆地將數據庫中的行與Solr中的文檔進行匹配。

字段前綴在這個意義上並不是真正的前綴,它們只是動態字段 - 意味着您在索引之前未在模式中定義字段結構,您只是假設所有以字段名稱開頭的字段都以i_開頭是一個整數。如果你知道你要索引哪些字段,那麼我會爲每個字段定義所需的字段和行爲。你也可以這樣做,有一些可以捕獲未定義字段的通配符字段,儘管你可能會更好地爲你要解決的特定用例定義這些字段。

我不會使用動態字段作爲唯一字段,儘管如果您願意的話可以這樣做。不過,我更喜歡在模式中定義這些字段,以便您可以執行分析並按每個字段設置存儲/索引。該模式還會向其他開發人員/ solr管理員詳細介紹Solr內核的實際結構以及您如何使用Solr。

+0

「[...]我會去定義字段和你想要的每個領域的行爲。[...]」我是新來的Solr ..到目前爲止,我設法餵養相關數據輸入Solr,我在哪裏定義單個字段的行爲? (例如,不允許通配符搜索..這是你的行爲意味着什麼?) – user3033490

+0

通過行爲我的意思是過濾器,分析器,標記器等。如果你看一個新的.tar.gz的例子/目錄,你會看到它定義了具有不同處理鏈的不同字段類型(text_no,text_de,text_en等)。您也可以更改每個定義字段的索引/存儲/靜態提升)。 – MatsLindh

+0

您是否在用「unique field」指向schema.xml中指定爲「」的字段? – user3033490