Как делают Вас Индексные файлы для Быстрых Поисков?

Спасибо всем за отклик.

Очевидно, я нахожу решение, установив плагин Classic Editor

https://en-gb.wordpress.org/plugins/classic-editor/

Это предотвращает отключение php-кода.

Если вы столкнулись с подобной проблемой, вы можете попробовать эту

7
задан Unknown 9 May 2009 в 23:07
поделиться

3 ответа

Простым случаем является инвертированный индекс.

Самый простой алгоритм прост:

  • сканировать файл на предмет слов, создавая список уникальных слов
  • нормализовать и фильтровать words
  • поместите запись, привязывающую это слово к файлу в вашем индексе.

Детали - это то, где все становится сложно, но основы те же.

Под "нормализовать и фильтровать" слова я имею в виду такие вещи, как преобразование всего в нижний регистр, удаление общих «стоп-слов» (the, if, in, a и т. д.), возможно «выделение корней» (удаление общих суффиксов для глаголов, множественного числа и т. д.).

После этого у вас есть уникальный список слов для файла, и вы можете построить на его основе свой индекс.

Существуют оптимизации для уменьшения объема памяти, методы проверки местоположения слов ("это" рядом с "тем"в документе, например).

Но это основной способ работы.

12
ответ дан 6 December 2019 в 07:28
поделиться

Вот действительно базовое описание; для более подробной информации вы можете прочитать этот учебник (бесплатный онлайн): http://informationretrieval.org/ ¹

1). Для всех файлов создайте index. Индекс состоит из всех уникальных слов, которые встречаются в вашем наборе данных (называемом «корпусом»). С каждым словом связан список идентификаторов документов; каждый идентификатор документа относится к документу, содержащему это слово.

Варианты: иногда при создании индекса вы хотите игнорировать стоп-слова («a», «the» и т. д.). Однако вы должны быть осторожны («быть или не быть» - это настоящий запрос, состоящий из запрещенных слов).

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

2) Когда пользователь вводит запрос, найдите соответствующие списки и объедините их. Если это строгий логический запрос, процесс довольно прост - для И, идентификатор документа должен встречаться во всех списках слов, для ИЛИ, по крайней мере, в одном списке слов и т. Д.

3) Если вы хотите ранжировать свой результатов, есть несколько способов сделать это, но основная идея состоит в том, чтобы использовать частоту, с которой слово встречается в документе, по сравнению с частотой, с которой вы ожидаете, что оно будет встречаться в любом документе в корпусе, в качестве сигнала что документ более-менее актуален. См. Учебник.

4) Вы также можете сохранять позиции слов для определения фраз и т. Д.

Большая часть этого не имеет отношения к поиску на рабочем столе, поскольку вас больше интересует отзыв (все документы, содержащие термин), чем ранжирование.


¹ ранее на http://www-csli.stanford.edu/~hinrich/information-retrieval-book.html ,

10
ответ дан 6 December 2019 в 07:28
поделиться

Вы всегда можете посмотреть что-нибудь вроде Apache Lucene .

Apache Lucene - это высокопроизводительная полнофункциональная библиотека движка текстового поиска полностью написан на Java. Это технология, подходящая практически для любого приложения, требующего полнотекстового поиска, особенно кросс-платформенного.

2
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: