В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Существует несколько доступных опций, и у каждого есть различные достоинства и недостатки. Если бы требуется добавить полнотекстовый поиск, было бы благоразумно исследовать каждого немного и испытать их, чтобы видеть, как хорошо это работает на Вас в Вашей среде.
MySQL имеет встроенную поддержку полнотекстового поиска. Это имеет онлайн-поддержку, означающую, что, когда новые записи добавляются к базе данных, они автоматически индексируются и будут доступны в результатах поиска. Документация имеет больше деталей.
acts_as_tsearch
предлагает обертку для подобной встроенной функциональности для последних версий PostgreSQL
Для других баз данных необходимо будет использовать другое программное обеспечение.
Lucene является популярным поисковым поставщиком, записанным в Java. Можно использовать Lucene через его поисковый сервер Solr с использованием направляющих acts_as_solr
.
Если Вы не хотите использовать Java, существует порт Lucene к Ruby под названием Хорек. Поддержка направляющих добавляется с помощью acts_as_ferret
плагин.
Xapian является другим хорошим вариантом и поддерживается в направляющих с помощью acts_as_xapian
плагин.
Наконец, моим предпочтительным вариантом является Сфинкс с помощью плагина Ультрасфинкса. Это чрезвычайно быстро и имеет много опций о том, как индексировать и искать Ваши базы данных, но активно больше не сохраняется.
Другой плагин для Сфинкса Думает Сфинкс, который имеет много позитивных откликов. Немного легче начать использовать Думающего Сфинкса, чем Ультрасфинкс. Я предложил бы исследовать оба плагина для определения который соответствия лучше с проектом.
Я могу рекомендовать Сфинкса. У Ryan Bates есть большой скринкаст при использовании Интеллектуального плагина Сфинкса для создания решения для полнотекстового поиска.
Можно использовать Хорька (который является Lucene, записанным в Ruby). Это интегрируется бесшовный с направляющими с помощью смешивания acts_as_ferret. Смотрите на, "Как Интегрировать Хорька С направляющими". Альтернатива является Сфинксом.
Я составлял список различных параметров поиска Ruby on Rails в этом другом вопросе. Я не уверен, как, или если объединить наши вопросы.
Это зависит, на какой базе данных Вы используете. Я рекомендовал бы использовать Solr, поскольку он предлагает много хороших опций. Оборотная сторона - Вы, должны выполнить отдельный процесс для него. Я использовал Хорька также, но нашел, что это менее стабильно с точки зрения многопоточного доступа к индексу. Я не попробовал Сфинкса, потому что он только работает с MySQL и Пост-ГРЭС.
Просто примечание для дальнейшего использования: Крайний Сфинкс больше не сохраняется. Думающий сфинкс является своей заменой. Хотя это испытывает недостаток в нескольких функциях в это время как выборка, которую имел Крайний сфинкс, это восполняет его в других функциях.
Я бы порекомендовал actions_as_ferret, поскольку я использую его для проекта Scrumpad на работе. Индексирование может быть выполнено как отдельный процесс, который гарантирует, что при повторном индексировании мы все еще можем использовать наше приложение. Это может сократить время простоя веб-сайта. Также поиск намного быстрее. Вы можете искать по нескольким моделям одновременно и сортировать результаты по нужным полям.