Можно ли опубликовать написанный вами код?
В основном многое зависит от того, как вы создаете свои поля и храните документы в lucene.
Давайте рассмотрим случайгде у меня есть два поля: ID и Комментарии;и в моем поле идентификатора я разрешаю значения типа 'находки nemo', т.е. строки с пробелом.Принимая во внимание, что «Комментарии» - это текстовое поле свободного потока, т.е. я разрешаю все и вся, что позволяет моя клавиатура и что может понять lucene.
Теперь в сценарии реальной жизни не имеет смысла указывать мой идентификатор: «находя немо» как две разные строки для поиска.Принимая во внимание, что я хочу проиндексировать все в комментариях.
Так что я сделаю, я создам объект документа (org.apache.lucene.document.Document
), чтобы позаботиться об этом ... Что-то вроде этого
Document doc = new Document();
doc.add(new Field("comments","Finding nemo was a very tough job for a clown fish ...", Field.Store.YES, Field.Index.ANALYZED));
doc.add(new Field("id", "finding nemo", Field.Store.YES, Field.Index.NOT_ANALYZED));
Итак, по сути, я создал два поля:
- комментарии: где я предпочел проанализировать , используя
Field.Index.ANALYZED
- id: гдеЯ дал указание lucene сохранить его, но не анализировать его
Field.Index.NOT_ANALYZED
Так вы настраиваете lucene для токенайзера и анализатора по умолчанию.В противном случае вы можете написать свой собственный токенизатор и анализаторы.
Ссылка (и) http://darksleep.com/lucene/
Надеюсь, это поможет вам ...:)