2013-05-10 1 views
0

Я в настоящее время строит срок, используя указанные ниже действия,Лучший способ построить термин с использованием Lucene 4.3.0 API?

Final Static (уровень класса): Term t=new Term(fieldName);

Внутри некоторой функции (ы):

t.createTerm(termText); 

Похоже, что метод createTerm был удалены из Lucene 4.3.0 API, ...

Я в настоящее время просто создаю термин, используя конструктор,

Term term = new Term(field,text); 

Я просто подумал о том, чтобы проверить лучший/эффективный способ создания термина с использованием новейшего API Lucene. Может ли кто-нибудь, пожалуйста, направить меня на это?

ответ

2

Очень просто: новый срок (FIELDNAME, termText)

Причина дополнительного конструктора и createTerm() в Lucene 3.x и до того, как дополнительные расходы на интернирование (String.intern()) имя поля. В именах полей Lucene 4.0 больше не интернированы, поскольку структура индекса изменилась, и поле < -> сравнение полей в терминах перечислений больше не требуется. Поэтому просто создайте термин, используя конструктор.

В целом термин - это просто световая оболочка и уже не является основным компонентом Lucene, он просто используется для «обратной совместимости» с более ранними версиями и в основном используется только для построения Query, как новый TermQuery (Term), ... С точки зрения реализации, в Lucene 4.x каждое поле подобно отдельному индексу, члены каждого поля представлены новым классом BytesRef, который является срезом из более крупного байтового [] массива, содержащего данные многие члены поля в индексе.

Uwe

http://lucene.472066.n3.nabble.com/Best-way-to-construct-term-using-Lucene-4-3-0-API-td4062388.html

 Смежные вопросы

  • Нет связанных вопросов^_^