2017-01-19 11 views
0

私はiOS Swiftの開発者で、私のアプリ内にElasticSearchを使用しています。私はtypeESに宣言する方法を頭に入れようとしています。typedocumentの違いはobject/data modelに最も似ています。ElasticSearchタイプの作成方法

Swiftで私はこのようなobjectまたはdata model作成します。「条件」と「名前」タイプStringの両方:

class Sneakers{ 
     var condition: String? 
     var name: String? 
} 

ザ・私は2つのプロパティを持つスニーカーという名前のオブジェクトを作成したと言っています。

curl -XPOST <bonsai_url>/myIndexName //I'm using Heroku & Bonsai for my ES cluster 

は、私は、私はどのようにある時に失われていますので、

curl -XPOST <bonsai_url>/myIndexName/sneakerType 

のようなタイプを設定することができます。

は、私が作成し、私は次のように使用Indexに私のESを設定するために知っていますスニーカーのデータモデルを検索の参照として使用するようにsneakerTypeを設定しますか?私のアプリの中で、ユーザーはSneakersオブジェクトに基づいて靴を検索することができます。

私はそれがESになり

curl -XPOST <bonsai_url>/myIndexName/sneakerType -d ' 
{ 
    "sneakers": { 
     "properties": { 
     "condition": { 
      "type": string 
     }, 
     "name": { 
      "type": string 
     } 
     } 
    } 
} 
' 

私の質問の線に沿って何かを知っている:

  1. タイプと文書間typedocument
  2. の違いは何これは データモデルに相当し、fieldspropertiesと等価でしょうか?
  3. 私はindex名前とtypeを作成した後、私は にtypeは私data modelを参照にし、それがproperties
  4. だんどのように私の最後の質問はのため_mapping何だろうと私は代わりに私のcurlコマンドであること使うべきでしょうか?
+0

https://www.elastic.co/を取得します:今、私は私が実行したときに私のmappingsキーの内側に何があるか見てみたいというキー

curl -XPOST <BONSAI_URL>/firebase/_mappings/sneakers [email protected] 

guide/en/elasticsearch/guide/current/mapping.html – blackmamba

答えて

1

EStypeは、class/data model/objectと同等です。

ESfieldsは、クラス/データモデル/オブジェクトのpropertiesと同等です。

documentは実際にインデックス内で検索されているものです。 typesneakersで、indexの中にスニーカーobjectsの2つのペアがある場合、indexは2 documentsの内部にあります。

Mappingsは、設定方法ですindextypeように、それは私のobjectまたはdata modelに等しくなりpropertiesだと、それはpropertiesをです。

私は、第1端子の内側に、私は今、私はindexを命名していることを

curl -XPOST <BONSAI_URL>/firebase 

を実行して、私のES indexを作成した後sneakerfile.json という名前のファイルを作成し、その中

{ 
    "sneakers": { 
     "properties": { 
     "condition": { 
      "type": "string" 
     }, 
     "name": { 
      "type": "string" 
     } 
     } 
    } 
} 
//sneakers is being treated like my Sneakers Swift class type 
//the properties condition & name are of type string just like my Swift's Sneaker's class's properties 

をこのコードを追加firebaseES typeを作成し、sneakersと名前を付けて、sneaker.jsonファイルを使用して_mappings

curl -XGET <BONSAI_URL>/firebase/_mappings?pretty 

私は

{ 
    "firebase" : { 
    "mappings" : { 
     "sneakers" : { 
     "properties" : { 
      "condition" : { 
      "type" : "string" 
      }, 
      "name" : { 
      "type" : "string" 
      } 
     } 
     } 
    } 
    } 
} 
関連する問題