C
C#2mo ago
Pjamaica

Lucene.net problem with wildcard search

I have a worker service that writes data into a lucene database. I have tried different analyzers all have the same problem. (the problem is most likely in my search code)
// var analyzer = new KeywordAnalyzer();
// var analyzer = new WhitespaceAnalyzer(luceneVersion);
var analyzer = new SimpleAnalyzer(luceneVersion);
// var analyzer = new StandardAnalyzer(luceneVersion);
// var analyzer = new KeywordAnalyzer();
// var analyzer = new WhitespaceAnalyzer(luceneVersion);
var analyzer = new SimpleAnalyzer(luceneVersion);
// var analyzer = new StandardAnalyzer(luceneVersion);
Client code:
var filenameQuery = new WildcardQuery(new Term(DocProp.Filename, "*" + SearchFor.ToLowerInvariant() ));
filenameQuery.Boost = 2.0f;
var filenameQuery2 = new WildcardQuery(new Term(DocProp.Filename, SearchFor.ToLowerInvariant()+"*" ));
filenameQuery2.Boost = 2.0f;
var filenameQuery3 = new WildcardQuery(new Term(DocProp.Filename,"*"+ SearchFor.ToLowerInvariant()+"*" ));
filenameQuery3.Boost = 2.0f;
var filenameQuery4 = new TermQuery(new Term(DocProp.Filename, SearchFor.ToLowerInvariant() ));
filenameQuery4.Boost = 2.0f;

var filePathQuery = new TermQuery(new Term(DocProp.Path, SearchFor.ToLowerInvariant() ));

var contentQuery = new TermQuery(new Term(DocProp.Content , SearchFor.ToLowerInvariant()));
var query = new BooleanQuery();
query.Add(filenameQuery,Occur.SHOULD);
query.Add(filenameQuery2,Occur.SHOULD);
query.Add(filenameQuery3,Occur.SHOULD);
query.Add(filenameQuery4,Occur.SHOULD);
query.Add(filePathQuery,Occur.SHOULD);
query.Add(contentQuery,Occur.SHOULD);
var filenameQuery = new WildcardQuery(new Term(DocProp.Filename, "*" + SearchFor.ToLowerInvariant() ));
filenameQuery.Boost = 2.0f;
var filenameQuery2 = new WildcardQuery(new Term(DocProp.Filename, SearchFor.ToLowerInvariant()+"*" ));
filenameQuery2.Boost = 2.0f;
var filenameQuery3 = new WildcardQuery(new Term(DocProp.Filename,"*"+ SearchFor.ToLowerInvariant()+"*" ));
filenameQuery3.Boost = 2.0f;
var filenameQuery4 = new TermQuery(new Term(DocProp.Filename, SearchFor.ToLowerInvariant() ));
filenameQuery4.Boost = 2.0f;

var filePathQuery = new TermQuery(new Term(DocProp.Path, SearchFor.ToLowerInvariant() ));

var contentQuery = new TermQuery(new Term(DocProp.Content , SearchFor.ToLowerInvariant()));
var query = new BooleanQuery();
query.Add(filenameQuery,Occur.SHOULD);
query.Add(filenameQuery2,Occur.SHOULD);
query.Add(filenameQuery3,Occur.SHOULD);
query.Add(filenameQuery4,Occur.SHOULD);
query.Add(filePathQuery,Occur.SHOULD);
query.Add(contentQuery,Occur.SHOULD);
An example filename that I search for is "Skype" These searches give the correct result: ky kyp kype These search do not give any result (all starting with the first letter) Sk Sky Skyp Skype When debugging I can see that the variable "SearchFor" is correct and not truncated.
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?