В чем разница между запросом с фразой и использованием фильтра shingle?

В настоящее время я индексирую веб-страницу с помощью lucene Цель состоит в том, чтобы иметь возможность быстро определить, какая страница содержит определенное выражение (обычно 1, 2 или 3 слова), и какие другие слова (или группа из 1–3 из них) также присутствуют на странице. Это будет использоваться для создания / обогащения / изменения тезауруса (фиксированный словарь).

Судя по найденным мною статьям, проблема в том, чтобы найти н-граммов (или гальку).

В Lucene есть ShingleFilter , ShingleMatrixFilter и ShingleAnalyzerWrapper , которые кажутся связанными с этой задачей.

Из этой презентации я узнал, что Lucene также может искать термины, разделенные фиксированным числом слов (так называемые slops). Пример приведен здесь .

Однако я не совсем понимаю разницу между этими подходами? Являются ли они принципиально разными, или вам нужно выбрать производительность / размер индекса?

В чем разница между ShingleMatrixFilter и ShingleFilter?

Надеюсь, гуру Lucene НАЙДЕТ этот вопрос и ответит ;-) !

13
задан Community 23 May 2017 в 12:17
поделиться