Хорошо ли работает B-дерево для автоматического предложения / автоматического заполнения веб-форм? - PullRequest
1 голос
/ 06 января 2012

Автоматическое предложение / заполнить поля используются по всему Интернету.Google, кажется, справился с этим, учитывая, что как только пользователь вводит в поисковом запросе, предложения возвращаются почти мгновенно.

Я предполагаю, что рамки для достижения этого включают быстрое хранилище данных в памяти навеб-уровень.Мы создаем приложение Grails, основанное на розничных продуктах, поэтому пользователь может искать Can, который должен предлагать такие вещи, как Canon, Cancun и т. Д., И задаться вопросом, будет ли достаточно для кэширования в памяти Java-дерева Java длябыстрое автоматическое завершение возвращается как JSON поверх AJAX.За пределами поля jQuery AutoComplete, существуют ли какие-либо фреймворки и / или библиотеки для облегчения разработки этого решения?

Ответы [ 2 ]

3 голосов
/ 07 января 2012

Автозаполнение - это проблема с сопоставлением текста и поиском информации. Реализация собственного B-дерева и написание собственной логики для сопоставления слов с другими словами - это то, что вы можете сделать. Но тогда вам придется реализовать Porter Stemming , Модель векторного пространства и Расчет расстояния редактирования строки .

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

Одним из наиболее популярных плагинов для экосистемы Grails для этого является Searchable , который был упомянут в Ledbrook & Smith's Grails в действии . Он использует Lucene под прикрытием, и позволяет легко добавлять полнотекстовый поиск в классы вашего домена. (Например, ознакомьтесь с главой 8 в GinA или документами с возможностью поиска).

1 голос
/ 06 января 2012

Плагин Grails Richui имеет автозаполнение, которое я использовал в прошлом.Мы подключили его к базе данных при каждом нажатии клавиши (что я бы не советовал, но наши данные менялись достаточно часто, поэтому требовались данные в реальном времени).Если ваш список вещей довольно статичен, то он, вероятно, будет работать хорошо для вас.

http://grails.org/plugin/richui#AutoComplete

...