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支持后缀匹配,不过这是个费时的动作。
以前客户需要类似的功能,没有去实现,罪过!!!