如何在Hibernate Search令牌流中插入其他令牌?

时间:2018-11-10 18:45:08

标签: hibernate search lucene

在Hibernate Search中,如何添加对完全匹配,startsWith和endsWith匹配的支持?

例如,用于索引值

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,并覆盖crementToken()等吗?如果是这样,如何告诉Hibernate Search在索引编制过程中仅使用MyCustomTokenFilter而不在查询过程中使用(因此我可以决定何时使用 START END 令牌)?

0 个答案:

没有答案