2016-12-21 3 views
0

Привет Я пытаюсь понять индекс json против текстового индекса в Cloudant. Теперь я знаю, используяОблачный индекс json против текстового индекса

{ "index": {}, "type": "text" } 

Позволяет сделать весь документ доступным для поиска. Но в чем разница между скажем,

{ 
    "index": { 
    "fields": [ 
     "title" 
    ] 
    }, 
    "type": "json" 
} 

и

{ 
    "index": { 
     "fields": [ 
      { 
       "name": "title", 
       "type": "string" 
      } 
     ] 
    }, 
    "name": "title-text", 
    "type": "text" 
} 

Спасибо.

ответ

1

тип json:

  • использует фазу Карты MapReduce
  • будет строить и запрос быстрее, чем тип текста для фиксированного ключа
  • не bookmark поля
  • не может использовать комбинацию или массив логические операторы, такие как $regex в качестве основы для запроса
  • только операторы равенства, такие как $eq, $gt, $gte, $lt и $lte (но не $ne) могут быть использованы в качестве основы запроса
  • может в конечном итоге делает больше работы в памяти для сложных запросов
  • сортировочных поля должны быть проиндексированы

тип text:

  • использует поисковый индекс Lucene
  • разрешений индексации всех полей документы автоматически с одной простой командой
  • обеспечивает большую гибкость для выполнения AdHoc запросов и сортировки по несколько ключей
  • позволяет вам использовать любой оператор в качестве основы для запроса в селекторе
  • типа (:string, :number) иногда нужно который должен быть добавлен для сортировки полю

от: https://docs.cloudant.com/cloudant_query.html

Если вы точно знаете, что данные, которые вы хотите Ио ok для, или вы хотите, чтобы сохраняли требования к хранению и обработке до минимума, вы можете указать , как создается индекс, создав его типа json.

Но для максимально возможной гибкости при поиске данных вы бы обычно создавали индекс типа текста.

Дополнительная информация:
https://developer.ibm.com/clouddataservices/docs/cloudant/get-started/use-cloudant-query/