Как отформатировать списки автозаполнения поиска? - PullRequest
0 голосов
/ 19 января 2010

В настоящее время я работаю над проектом AppEngine и хотел бы реализовать автозаполнение поисковых терминов. элементы , которые можно искать, достаточно недвусмысленны и кратки, поэтому я подумал о том, чтобы реализовать их, предоставив каждому элементу список неполных типизаций. Так что foobar получит список вроде [f, fo, foo, foob, fooba, foobar]. Текст пользователя в окне поиска затем сравнивается с этим списком, и предлагаются положительные совпадения.

В этом списке есть несколько возможных оптимизаций, о которых я думал:

  • Удаление пробелов из поисковых терминов. Foo. Bar до FooBar.
  • Удаление заглавных букв
  • Удаление ведущих частиц, таких как «the», «a», «an». The Guy будет guy и проиндексировано как [g, gu, guy].
  • Только добавление подстроки длиннее 2 или 3 в список индексации. Так что The Guy будет проиндексировано как [gu, guy]. Я думал, что предложения, которые соответствуют только первой букве, не будут такими актуальными.

Таким образом, пользовательский поисковый запрос также будет отформатирован, после чего производится поиск в БД. После предложения поискового термина частицы, знаки пунктуации и заглавные буквы будут добавляться в соответствии с полным именем предлагаемого объекта. Поэтому поиск «the» не дал бы никаких предложений, а поиск «The Gu ..» или «gu» предложил бы «The Guy».

Это хорошая идея? Главным образом: это форматирование поможет или только вызовет проблемы?

1 Ответ

2 голосов
/ 19 января 2010

Я уже сталкивался с той же проблемой, и решение, которое я принял, было очень похоже на вашу идею. Я разбил элементы на слова, преобразовал их в нижний регистр, удалил ударения и создал список начальных значений. Например, "Báz Bar" станет ['b', 'ba', 'bar', 'baz'].

Я разместил код в этой теме . Окно поиска этого сайта использует его. Не стесняйтесь использовать его, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...