Elasticsearch索引和文档
#php #elasticsearch #sigmie

要有效地使用Elasticsearch,必须了解索引和文档等关键概念。在此博客文章中,我们将在Elasticsearch的背景下探讨哪些索引和文档。

什么是索引?

想象一个孩子的房间里有一个装满玩具的抽屉。在Elasticsearch中,索引具有类似的目的,它是相关数据的存储库。将其视为一系列文档集合,这些文档被分组在一起以方便搜索和检索。

要可视化这一点,让我们考虑电影索引的简单表示:

movies
├─ Document 1
├─ Document 2
├─ Document 3
├─ ...

索引中的每个数据都称为文档

您可以使用Sigmie这样创建索引:

$index = $sigmie->newIndex('movies')->create();

什么是文档?

文档只是存储在索引中的JSON。

Document = JSON

在Elasticsearch中,A 文档表示为JSON对象,并存储在索引中。它包含您要搜索,分析或检索的实际数据。

以下是文档的外观:

{
   "title": "The Shawshank Redemption"
}

该文档包含一个带有值The Shawshank Redemption的单个字段title

JSON结构使我们能够代表各种数据类型和结构。文档结构是使用Elasticsearch实现您想要的最重要部分。

在这里,您如何在Sigmie中创建Elasticsearch文档的实例:

use Sigmie\Document\Document;

$document = new Document(['name' => 'The Shawshank Redemption']),

什么是索引

索引是将文档添加到索引中的简单行为。这与使用ElasticSearch的使用无关,索引很重要,这仅仅是因为您可以在索引中执行任何操作。

这是用Sigmie
索引a 文档的方法

$index->collect()->add($document);

一个例子

这是一个示例,演示了如何在我们的“电影”索引中添加三个电影文档:

$documents = [
    new Document(['title' => 'The Shawshank Redemption']),
    new Document(['title' => 'Inception']),
    new Document(['title' => 'Pulp Fiction']),
];

$index->collect()->merge($documents);

在上面的代码中,我们创建了一个代表电影的Document对象。通过在收集的索引上调用merge方法并通过文档,我们将其添加到索引

这是我们合并文档后的索引。

movies
├─ "The Shawshank Redemption"
├─ "Inception"
├─ "Pulp Fiction"