簡體   English   中英

SOLR中的“文檔”和“核心”是什么意思? 我該如何使用它們?

[英]What does “documents” and “cores” mean in SOLR? And how can i use them?

基於關系數據庫的類比,我想知道Solr如何適應。 根據我到目前為止的了解,Solr中的“文檔”類似於sql中的“行”(如果我的sql表有100行,則需要在solr中插入100個文檔),“核心”類似於“表”(或數據庫?!?)。

問題是:如果我有兩組不相關的信息,那么假設一個帶有汽車信息(ID,名稱,系列,顏色,描述)的表和一個帶有用戶信息(ID,名稱,地址,年齡,性別)的表,其中我要在Solr中插入這些東西嗎? 我建立了2個核心(core_car,core_user),並使用來自coresponding表中的文檔填充了每個核心? 或者我做1個核心(core_general),然后從兩個表中插入所有文檔(以某種方式分隔,我不知道該如何分隔)。

在第一種情況下,有2個核心,我感覺就像我在創建2個數據庫,每個數據庫有1個表(過度殺傷力)。 在第二個中,我感覺就像我正在創建一張表,將所有不相關的字段混在一起(如果存在某種形式的分離,則不會是這種情況-我目前還不知道)。

請確認或不接受我的假設。 先感謝您。

發布問題之前您曾探索過的很棒。 這是我的意見。

Solr文檔 :也許更合適的感知此概念的方法是根據結果進行思考。 執行搜索查詢后,每個Solr文檔僅是結果集中的一個結果條目。

如果您要索引Wikipedia,則每篇文章都將是一個Solr文檔。 當您搜索“排序算法”時,您希望看到的結果是“氣泡排序”,“合並排序”等。它們每個都是文章,Solr文檔以及結果集中的結果。

如果您想將其與rdbms概念聯系起來,我想說的是,每個搜索結果(即Solr文檔)都可以是sql查詢結果集中的一行。 該行可以是單個表中的一行,也可以是JOINed表中的一行。

Solr Core只是一個lucene索引的包裝。 每個Solr Web應用程序都可以運行多個Solr Core。

加快理解速度的最佳方法是避免將Solr中的概念與RDBMS相關聯。

探索Solr提供的RDMBS無法 (有效地)提供的功能

這是另一個可能對您有幫助的鏈接: Solr術語

您的用例

Solr / Lucene的美在於靈活的模式,或者我不會說任何模式。 每個文檔可以具有與先前索引的文檔完全不同的字段和屬性。

只要可以完全伸縮 ,就可以在相同的lucene索引中使用不同類型的文檔(汽車,人等)(在您的情況下為Solr Core)。

例如,如果您有5億輛汽車和30億人的汽車條目,則將它們分別編入索引是很有意義的。 如果您擁有100萬人員和50萬輛汽車,則可以將它們全部填充到包含實體類型的標識符字段的同一索引中。

您的問題是非常主觀的。 並不是每個人都會同意我所說的。 一個核心或多個核心之間的決定取決於更多因素。

例如,

  1. 這兩個實體(人和汽車)是否相互補充以充當邏輯塊以支持產品功能?
  2. 在任何情況下,您都必須同時獲得兩種類型的查詢結果。
  3. 您更新實體類型的頻率。 (Solr中沒有更新選項。只能刪除並重新添加。)
  4. 它們屬於不同的產品功能嗎?
  5. 他們是由不同的團隊等擁有嗎?

暫無
暫無

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

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