2017-11-25 290 views
0

我知道Solr使用Lucene和Lucene使用倒排索引。但從目前爲止我看到的Lucene例子中,我不確定我是否理解它與Solr的結合。Solr如何存儲文件

給出下列文件:

<doc> 
    <field name="id">9885A004</field> 
    <field name="name">Canon PowerShot SD500</field> 
    <field name="manu">Canon Inc.</field> 
    <field name="inStock">true</field> 
</doc> 

從到目前爲止,我所看到的例子,我認爲Lucene的具有對待每個字段作爲文檔。然後它會說:ord Cannon出現在字段name和字段manu中。

索引分解了多少?或者索引只是說:「佳能這個詞出現在id爲這樣的文件」?

如何在Solr中使用Lucene時如何工作? 該文件在索引中的外觀如何? (假設每個字段都有indexed="true"

+1

您可以[通過在2013年從Lucene的/ Solr的革命演示一個如何Lucene的存儲數據的詳細綱要(獲得https://www.slideshare.net/lucenerevolution/what -is-inaluceneagrandfinal)。我不確定它是否提到了DocValues,它是一個面向列的存儲,而不是常規的倒排索引,可以加速某些操作。 – MatsLindh

+0

@MatsLindh感謝您的信息! – user3813234

回答

1

我幾年前發了一篇博文,詳細解釋一下[1]。

簡短回答了這個問題:「從我到目前爲止看到的例子,我認爲Lucene的具有對待每個字段的文檔」

絕對不是。 Lucene信息單元是由地圖字段 - >值[s]組成的文檔。 Solr文檔只是一個稍微不同的表示,因爲Solr在描述字段的地方包含模式。 因此,在Solr中,您只需將字段添加到文檔中,而無需描述類型和其他屬性(存儲在模式中),而在Lucene中,您需要在創建文檔時明確定義它們。

[1] https://sease.io/2015/07/26/exploring-solr-internals-the-lucene-inverted-index/