結構說明

檔案下載完 或 git clone 之後,資料夾結構如下,demo 資料夾下即爲 Elastica 的使用範例,guide 則是靜態網頁(HTML)的使用說明,Server 連線設定請編輯檔案 demo/Elastica/Core.php,修改其 $config 預設值。
OA-ElasticaSearch/
        │
        ├─ demo/
        │   │
        │   ├─ Elastica/
        │   │     ├─ ...
        │   │     └─ ElasticaSearch.php
        │   │
        │   ├─ searches/
        │   │     └─ User.php
        │   │
        │   └─ index.php
        │
        ├─ guide/
        │   └─ ...
        │
        ├─ index.html
        │
        └─ readme.md
          

demo 資料夾

demo 資料夾下,主要三個部分,檔案 index.php 為後端 php 的 CRUD 等使用範例,而資料夾 Elastica 則是 Elastica Library,資料夾 searches 則放置對應於每個 Type 的類別(Class)

guide 資料夾

guide 資料夾下,主要皆為靜態網頁(HTML),用以說明 OA-ElasticaSearch 的使用方法。

ElasticaSearch 類別

所有對應 Type 的物件皆繼承於此類別,此提供了多樣的類別方法、變數可以使用,其中包含了 CRUD 所使用的方法,若要刪除 index,也可以使用 deleteIndex 類別方法,如:ElasticaSearch::deleteIndex();

對應類別(Class)

對應於 Type 的物件,其結構範例如下:
  class User extends ElasticaSearch {
    static $primary_key = 'id';
    static $type_name = 'users';

    public function __construct ($data = array ()) {
      parent::__construct ($data);
    }
  }
          
  • 每個物件繼承於 ElasticaSearch,並且於類別開頭設定 primary_key、type_name 值。
    • $primary_key - 是用來指定哪個 field 當 _id 之使用。
    • $type_name - 則是設定此類別是對應於哪一個 Type。
  • 因繼承 ElasticaSearch 類別,所以有 createcreateManyfindupdateupdateManydeleteMany、clean 的類別方法可用。
  • 因繼承 ElasticaSearch 類別,所以單筆物件有 savedelete 的實體方法 以及 fields 的實體變數可以使用。