簡體   English   中英

Solr模式設計和性能

[英]Solr schema design and performance

我有一個包含三個實體的圖書數據庫:圖書,頁面和標題(在頁面中找到的標題)。 我對模式設計中兩種方法之間的性能感到困惑和擔憂:

1-將書籍作為文檔處理,即書籍字段,具有multiValue的頁面字段和具有multiValue的書名字段。 通過這種方法,所有書籍數據都將在一個Solr文檔中以非常大的字段表示。

2-將頁面作為文檔處理,這將導致較小的字段,但會導致大量的文檔。

我試圖查看此官方資源,但無法為我的問題找到明確的答案。

假設您要獲取Solr結果並通過另一個應用程序顯示,我將使用最小的項-標題-文檔模型,這將使​​顯示結果出現的位置更加容易。 這樣做可以最大程度地減少您需要編寫的應用程序代碼量。 如果您的用戶直接查詢Solr,則我可以改用Page作為我的文檔-大概您是在使用Solr的突出顯示功能,然后幫助您的用戶確定其搜索詞的匹配方式。

對於標題文檔,我將按以下方式對模式進行建模:

  1. 圖書ID +頁碼+標題[字符串-唯一鍵]
  2. 圖書ID [整數]
  3. 圖書名稱[標記的文本字段]
  4. 頁碼[TrieIntField]
  5. 標題[標記的文本字段]
  6. 該書/標題/頁面組合的內容[標記的文本字段]

您可能還需要捕獲其他屬性,例如作者,發布日期,發布者,但是您在上面沒有解釋其他信息,因此我將其排除在本示例之外。

然后,文本查詢可能涉及Book Name Title Book Name ,“ Title和“ Content ,您可能希望在其中定義一個已索引但未存儲的字段,該字段用作schema.xml中<copyField/>聲明的目標,以便於輕松搜索所有內容。三個同時。

對於索引,在不了解更多有關要索引的數據的情況下,我將使用ICU TokenizerSnowball Porter詞干過濾器 ,並在文本字段上使用語言規范來處理非英語數據-假設所有書籍都使用同一語言。 如果是英語,則使用標准標記器而不是ICU。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM