Как вставить дополнительные токены в поток токенов Hibernate Search? - PullRequest
0 голосов
/ 10 ноября 2018

Как в Hibernate Search добавить поддержку полного, начинается с и заканчивается с совпадением?

Например, для индексации значений

doc 1: bridge
doc 2: bridge rusting
doc 3: strong bridge

Я хочу вернуть запросы:

query: ^bridge$
result: doc 1

query: ^bridge
result: docs 1 & 2

query: bridge$
result: docs 1 & 3

Решение кажется простым: переопределить индексатор Lucene, поэтому поля индексируются с некоторыми дополнительными токенами:

doc 1: _BEGIN_ bridge _END_
doc 2: _BEGIN_ bridge rusting _END_
doc 3: _BEGIN_ strong bridge _END_

так что:

query: _BEGIN_ bridge _END_
returns: docs 1

query: _BEGIN_ bridge
returns: docs 1 and 2

query: bridge _END_
returns: docs 1 and 3

Концептуально это должно работать. Но как реализовать?

Должен ли я создать собственный фильтр токенов MyCustomTokenFilter, переопределить incrementToken () и т. Д.? Если да, то как сказать Hibernate Search, чтобы ТОЛЬКО использовать MyCustomTokenFilter во время индексации, а НЕ во время запросов (чтобы я мог решить, когда использовать токены START и END )?

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