Как анализировать поля JSON в поиске Datastax (DSE)

Я хотел бы хранить данные JSON в столбце и анализировать их поиском DSE как документ, а не как текстовое поле.

Я не могу привести документы JSON в таблицу, потому что они не соответствуют общей схеме (или любому набору схем разумного размера)

В настоящее время у меня есть работающий поиск по шаблону в большом текстовом поле, который работает плохо и не позволяет выполнять более сложные запросы.

Я читал, что SOLR поддерживает вложенные документы, но документации недостаточно для применения к DSE. Похоже, тип поля SOLR для вложенных документов и я понятия не имею, как применить ограничения к именам объектов, таким как _childDocuments_, как показано здесь

Возможно ли, чтобы поля/столбцы дескриптора поиска DSE были отдельными или вложенными документами, и если да, то как их настроить и использовать?

Спасибо


person kostja    schedule 20.07.2016    source источник
comment
Вы смотрели в UDT? Здесь есть действительно хорошая статья Datastax. datastax.com/dev/blog/tuple- и-udt-поддержка-в-dse-поиске   -  person mando222    schedule 20.07.2016
comment
IIUC, определение UDT по-прежнему требует соответствия схеме, которой у меня, к сожалению, нет. Многие имена/ключи объектов в документах, с которыми я работаю, являются просто хэшами, которые я не могу предвидеть. Тем не менее, UDT могут двигаться в правильном направлении для подмножества документов с более последовательной структурой, так что спасибо за совет.   -  person kostja    schedule 21.07.2016
comment
@ mando222, чтобы перефразировать ваш ответ в терминах вопроса: нет, индексация документа JSON, хранящегося в записи, как вложенного/отдельного документа, невозможна в выпуске DSE 5. Верный?   -  person kostja    schedule 21.07.2016


Ответы (1)


Мне кажется, что если вы не можете использовать UDT, другим вариантом являются полевые трансформаторы. (ссылка ниже)

Чтобы ответить на вопрос комментария. Индексация документа JSON, хранящегося в записи, как вложенного/отдельного документа, вполне возможна. Основная проблема здесь заключается в том, что данные, похоже, не имеют никакого отношения к формату. Это чрезвычайно усложняет обработку, поскольку для создания схемы вы обычно используете структуру JSON. Если я правильно понимаю, здесь нет такой структуры, с которой можно было бы работать.

http://www.datastax.com/dev/blog/dse-field-transformers

person mando222    schedule 21.07.2016
comment
Спасибо, mando222, это даже ближе к тому, что мне нужно, но, к сожалению, гораздо сложнее. В документах есть общие статические элементы, а также динамические элементы с общими именами, поэтому я не могу зафиксировать схему. К сожалению, я был избалован elasticsearch, который с удовольствием индексирует все, что вы ему бросаете :) - person kostja; 21.07.2016
comment
Для cassandra существует эластичный поиск с открытым исходным кодом. Я не использовал его, но это может помочь. github.com/vroyer/elassandra - person mando222; 21.07.2016
comment
Элассандра выглядит хорошо, не знала, что она существует. Спасибо за указатель, mando222 - person kostja; 22.07.2016