Hello,
I’m using Lucene.Net 3.0.3.0 version in my website to search list of courses.
I have few courses which contains the special character “#” like, C#, C#.Net,
etc.
But When I search with the term “C#” it showing 0 results.
I’m using StandardAnalyzer and MultiFieldQueryParser also allowing wildcard
search (AllowLeadingWildcard = true).
Here is my code:
var analyzer = new StandardAnalyzer(Version.LUCENE_30, stopWords);
{
BooleanQuery query = new BooleanQuery();
var nameParser = new MultiFieldQueryParser(Version.LUCENE_30, new[] {
"Column1", " Column2", " Column3" }, analyzer);
if (!string.IsNullOrEmpty(searchCriteria.CourseName))
{
query.Add(parseQuery(GetTerms(searchCriteria.CourseName.ReplaceDiacritics()),
nameParser), Occur.MUST);
}
ScoreDoc[] hits = searcher.Search(query, null, hits_limit,
Sort.RELEVANCE).ScoreDocs;
var results = _mapLuceneToDataList(hits, searcher);
analyzer.Close();
searcher.Dispose();
return results;
}
For indexing:
The word “C#” indexed and stored correctly.
doc.Add(new Field("Title", sampleData.CourseName, Field.Store.YES,
Field.Index.ANALYZED));
Kindly let me know what I have to do to retrieve the result when I search with
the term “C#”.
Thanks & Regards,
Singaravelu R