улучшение времени поиска - PullRequest
       33

улучшение времени поиска

1 голос
/ 13 ноября 2009

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

Как крупные сайты, такие как stackoverflow, reddit и т. Д., Реализуют свои функции поиска?

(Извините за неопределенность - я новичок)

Ответы [ 3 ]

0 голосов
/ 13 ноября 2009

Ух ты, здесь написаны целые курсы и статьи ...

Во-первых, если вы храните в базе данных, есть индексы и различные объединения и представления, а также все виды развлечений для ускорения ваших запросов.

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

Далее прочитайте эту статью в Википедии о поиске строк. Есть наивный поиск, где вы просто смотрите, или те, где вы сначала создаете индекс, так что последующие поиски позволят вам переходить, как главы или номера страниц в книге текста.

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

Кроме того, существует нечеткий поиск, когда вы не получаете точного соответствия - вы можете сделать это на некотором балле «близость» - например, на процент совпадений символов.

Надеюсь, это даст вам хотя бы хорошую отправную точку!

0 голосов
/ 13 ноября 2009

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

0 голосов
/ 13 ноября 2009

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

...