Поиск по подстановочным знакам со специальными символами " # " не работает
Я использую Люсен.Чистая версия 3.0.3.0 на мой сайт, чтобы найти список курсов.
У меня есть несколько курсов, которые содержат специальный символ"#", например, C#, C#.Net и т. д.
Но когда я ищу с термином " C#", он показывает 0 результатов.
Я использую StandardAnalyzer и MultiFieldQueryParser, также разрешающие поиск по подстановочным знакам (AllowLeadingWildcard = true).
[дубликат кода удален]
Пожалуйста, дайте мне знать, что я должен сделать, чтобы получить результат при поиске с помощью термина “C#”.
Спасибо,
Сингаравелу Р
Что я уже пробовал:
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; }
Для индексации: Слово "C#" индексируется и хранится правильно.
doc.Add(new Field("Title", sampleData.CourseName, Field.Store.YES, Field.Index.ANALYZED));
BillWoodruff
Что не так с текущим ответом на тот же вопрос, который вы опубликовали вчера на трекере Люцернского выпуска:
https://issues.apache.org/jira/browse/LUCENENET-595