Новый метод работает путем отмены инвертирования индексированного поля, что позволяет быстро искать термины в поле для любого данного документа. Это на самом деле гибридный подход - для экономии памяти и увеличения скорости, термины, которые появляются во многих документах (более 5%), не являются неинвертированными, вместо этого используется традиционная логика пересечения наборов для получения счетчиков.

кст

Это вопрос в основном о внутренностях Lucene (или, возможно, Solr). Основная темаграненый поиск, в котором поиск может происходить по нескольким независимым измерениям (граням) объектов (например, размер, скорость, цена автомобиля).

При реализации с реляционной базой данных для большого числа фасетов многополевые индексы бесполезны, поскольку фасеты можно искать в любом порядке, поэтому определенный упорядоченный многоиндексный индекс используется с малой вероятностью, а создание всех возможных упорядочений индексов невыносимый.

Solr рекламируется для того, чтобы хорошо справляться с граненой задачей поиска, которая, если я считаю правильным, должна быть связана с Lucene (предположительно), хорошо работающим в многополевых запросах (где поля документа связаны с фасетами объекта).

Вопрос

перевернутый индекс Lucene может храниться в реляционной базе данных, и, естественно, получение пересечений совпадающих документов также может быть легко достигнуто с помощью RDBMS с использованием индексов с одним полем.

Следовательно, в Lucene предположительно есть несколько продвинутых методов для многополевых запросов, помимо простого пересечения соответствующих документов на основе инвертированного индекса.

Итак, вопрос в том, что это за техника / трюк? В более широком смысле: почему Lucene / Solr теоретически могут добиться более высокой производительности поиска в многогранном формате, чем RDBMS (если так)?

Примечание. Мое первое предположение заключается в том, что Lucene будет использовать некоторый метод разделения пространства для разделения векторного пространства, построенного из полей документа в качестве измерений, но, насколько я понимаю, Lucene не основан исключительно на векторном пространстве.

Ответы на вопрос(1)

Ваш ответ на вопрос