2017-11-25 292 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/