Возможно, вы захотите рассмотреть Apache Solr.Хотя Solr использует схему, он также поддерживает динамические поля.Динамические поля позволяют на лету создавать новые поля для типов данных, которые вы разрешаете.Например, в Solr вы можете определить динамическое поле, например:
<dynamicField name="*_i" type="integer" indexed="true" stored="true"/>
И затем вы можете динамически создавать целочисленные поля с именами, такими как "somefield_i".Конечно, вы можете использовать строковые типы, типы дат и многие другие типы типов, такие как текстовые поля, поддерживающие перенос слов, сопоставление синонимов и другие функции поисковой системы.
Solr поддерживает репликацию главный-подчиненный, проверку орфографии и множество других замечательных функций.Он ориентирован на документы и имеет интерфейс REST.
Обновление: Нашел симпатичный небольшой пост в блоге, сравнивающий индексирование с поиском Solr и Elastic: http://dmurphy747.wordpress.com/2011/04/02/solr-vs-elasticsearch-deathmatch/ ... к сожалению, это не влияет на производительность запросов.