Reputation: 3434
If the search query contains a leading wildcard character (*
or ?
), the QueryParser
's Parse
function throws an error.
Dim q As String = "*abc"
Dim qp As New QueryParser("text", New StandardAnalyzer())
Dim query As Query = qp.Parse(q)
Is there any way to solve this problem in Lucene.NET v2.0.0.4?
Upvotes: 4
Views: 4081
Reputation: 11501
You can avoid wildcard queries by utilizing NGramFilter
for your index analyzer. Than you have to use search_analyzer
without NGramFilter
. This way you can search similar to like "%text%"
without even needing wildcards. You just enter 'abc' and your index would be searched for all entries containing 'abc' very quickly.
Upvotes: 0
Reputation: 2473
Set QueryParser.SetAllowLeadingWildcard Method to true. The API page states that "this can produce very slow queries on big indexes" though.
Upvotes: 5
Reputation: 18184
Maybe you have to use a WildcardQuery, but
...In order to prevent extremely slow WildcardQueries, a Wildcard term should not start with one of the wildcards...
Upvotes: 1