我是SOLR的新手,并阅读其文档。我无法弄清楚他们在使用期限文件时的含义。它几乎感觉像记录最初,但后来更多我读我可以将它与不同的东西,如实际的文件(字,pdf等..)或领域..可以澄清它真正指的是什么?SOLR术语中的文档是什么?
例如http://lucene.apache.org/solr/根据详细功能 - >架构他们正在调用某些文件。我也检查了他们没有参考的术语页面。 http://wiki.apache.org/solr/SolrTerminology
我是SOLR的新手,并阅读其文档。我无法弄清楚他们在使用期限文件时的含义。它几乎感觉像记录最初,但后来更多我读我可以将它与不同的东西,如实际的文件(字,pdf等..)或领域..可以澄清它真正指的是什么?SOLR术语中的文档是什么?
例如http://lucene.apache.org/solr/根据详细功能 - >架构他们正在调用某些文件。我也检查了他们没有参考的术语页面。 http://wiki.apache.org/solr/SolrTerminology
当我正在研究MongoDB时,我也被术语document
弄糊涂了:-)。你可以看到https://en.wikipedia.org/wiki/Document-oriented_database。
Solr文档大致等同于数据库表中的一行。但Solr(和MongoDB)文档可以更好地被认为是“聚合”行。 (NoSQL Distilled使用术语聚合导向数据库。)
在DB世界中,您可以将来自不同表格的数据存储到聚合表中,以便于数据检索。同样,您可以从不同的数据库表中获取数据并将其存储在Solr文档中,以便更快地进行搜索或富文本分析或刻面,或者使用数据库(或您现有的数据存储)对于不可行或效率低下的任何其他Solr功能。
您还可以将Solr(和Mongo)文档视为JSON对象,或者更简单地将其视为键值对。虽然Mongo允许您存储嵌套文档,但Solr不会。
一个例子嵌套蒙戈文件:
{
Title: NoSQL Distilled,
Authors: [{name: Pramod Sadalage, age: 35},
{name: Martin Fowler, age: 40}],
PubYear: 2012,
Preface: <preface contents>,
BodyText: <entire content of the book>
}
你可以看到Authors
场本身包含2个文件。
但是Solr中,嵌套是不允许的,所以,你可以存储像(确保索引匹配Authors
和AuthorAges
)该文档:
{
Title: NoSQL Distilled,
Authors: [Pramod Sadalage, Martin Fowler],
AuthorAges: [35, 40],
PubYear: 2012,
Preface: <preface contents>,
BodyText: <entire content of the book>
}
以上文件可以存储在数据库中的世界以“规范化”的方式,你可以使用JOIN来获取所有上述字段。例如,books
表可能只有唯一字段title
和pubYear
以及book_id
主键。您将拥有另一个表authors
,其主键为author_id
和name
和age
。然后你将有一张表book_authors
并将作者映射到书中。然后你加入这些表来获取你想要的字段。在“文档”世界中,您将所有这些字段放入单个文档中。
也许这个答案在这个http://stackoverflow.com/questions/2095587/questions-about-solr-documents-and-some-more可以帮助你。 – Alfergon