Поскольку на мои вопросы до сих пор нет ответов, я должен написать свои мысли и принять их.Тем не менее, если кто-то предложит лучшее решение, я с радостью приму его вместо моего.
Я пойду с матрицей совместного использования, так как это самая главная часть майнинга ассоциаций.В общем, Solr предоставляет все необходимые функции для построения этой матрицы, хотя они не так эффективны, как прямой доступ с Lucene.Для построения матрицы нам нужно:
- Все термины или, по крайней мере, самые частые , потому что редкие термины не влияют на результат майнинга ассоциаций ихnature.
- Документы, в которых встречаются эти термины , опять же, как минимум верхние документы.
Обе эти задачи могут быть легко выполнены с помощью стандартных компонентов Solr.
Для извлечения терминов TermsComponent или может использоваться граненый поиск .Мы можем получить только верхние термины (по умолчанию) или все термины (установив максимальное количество используемых терминов, подробности см. В документации по конкретной функции).
Получение документов с данным термином - просто поиск по этому термину.Слабым местом здесь является то, что нам нужен 1 запрос на срок, и может быть тысячи условий.Еще одним слабым местом является то, что ни простой, ни фасетный поиск не предоставляют информацию о количестве вхождений текущего термина в найденном документе.
Имея это, легко построить матрицу совместного использования.Для моей ассоциации можно использовать другое программное обеспечение, такое как Weka или написать собственную реализацию, скажем, Apriori алгоритма .