现在的位置: 首页 > 综合 > 正文

原来lucene支持后缀匹配!QueryParser.setAllowLeadingWildcard( true )

2013年08月11日 ⁄ 综合 ⁄ 共 1009字 ⁄ 字号 评论关闭

Lucene supports wild card queries which allow you to perform searches such as book*
, which will find documents containing terms such as book
, bookstore
, booklet
, etc. Lucene refers to this type of a query as a 'prefix query'.

Lucene
also supports wild card queries which allow you to place a wild card in
the middle of the query term. For instance, you could make searches
like: mi*pelling
. That will match both misspelling
, which is the correct way to spell this word, as well as mispelling
, which is a common spelling mistake.

Another
wild card character that you can use is '?', a question mark. The ?
will match a single character. This allows you to perform queries such
as Bra?il
. Such a query will match both Brasil
and Brazil
. Lucene refers to this type of a query as a 'wildcard query'.

Leading wildcards (e.g. *ook
) are not
supported by the QueryParser by default. As of Lucene 2.1, they can be enabled by calling QueryParser.setAllowLeadingWildcard( true )



.
Note that this can be an expensive operation: it requires scanning the
list of tokens in the index in its entirety to look for those that
match the pattern.

 

 

今天在调试bug的时候,在网上无意发现lucene支持后缀匹配,不过这是个费时的动作。

以前客户需要类似的功能,没有去实现,罪过!!!

 

 

 

 

 

 

 

 

抱歉!评论已关闭.