2017-01-19 13 views
0

Я разработчик iOS Swift, и я использую в своем приложении ElasticSearch. Я пытаюсь обвести голову, как объявить type в ES, какая разница между type и document, и которая больше всего похожа на object/data model.Как создать ElasticSearch Тип

В Swift я бы создать object или data model так:

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

говорит, я создал объект с именем тапки с 2-мя свойствами: «состояние» и «имя» как типа String.

Я знаю, чтобы создать и установить мой ES к Index я использую следующее:

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

Затем я могу установить тип как так

curl -XPOST <bonsai_url>/myIndexName/sneakerType 

Где я потерял в том, как установить sneakerType для использования моей модели данных Sneakers в качестве ссылки на поиск? В моем приложении пользователи могут искать обувь на основе объекта Sneakers.

Я знаю, что это что-то вдоль линий

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

Мои вопросы будут в ES:

  1. какая разница между type и document
  2. между типом и документом что будет эквивалентно модели данных и будет ли fields эквивалентом properties?
  3. после того, как я создаю мой index имя и type, как мне сделать type к относятся к моему data model и это properties
  4. мой последний вопрос будет то, что _mapping для и я должен использовать это в моем локонов команды вместо этого?
+0

https://www.elastic.co/ руководство/ен/elasticsearch/гид/ток/mapping.html – blackmamba

ответ

1

В EStype является эквивалентом class/data model/object.

В ESfields являются эквивалентом модели/данных модели/объекта properties.

A document - это то, что на самом деле обыскивается внутри индекса. Если я нахожу карту typesneakers, а внутри index есть 2 пары Sneaker objects, тогда index будет иметь внутри него 2 documents.

Mappings как вы установите index так что type и это properties бы приравнять к моему object или data model и это properties.

я первый создал файл с именем 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 

Тогда внутри терминала я создал свой ES index, запустив

curl -XPOST <BONSAI_URL>/firebase 

Теперь, когда у меня есть index имени firebase Я создаю свой ES type и назову его sneakers, и я использую файл sneaker.json для заполнения _mappings ключ

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

Теперь, когда я хочу, чтобы посмотреть, что внутри моего mappings ключа, когда я бегу:

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

я получить

{ 
    "firebase" : { 
    "mappings" : { 
     "sneakers" : { 
     "properties" : { 
      "condition" : { 
      "type" : "string" 
      }, 
      "name" : { 
      "type" : "string" 
      } 
     } 
     } 
    } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^