R.Singaravelu Ответов: 1

Поиск по подстановочным знакам со специальными символами " # " не работает


Я использую Люсен.Чистая версия 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

1 Ответов

Рейтинг:
9

R.Singaravelu

Да я создал свой собственный анализатор по предложению предоставленному в Lucene issue tracker "https://issues.apache.org/jira/browse/LUCENENET-595".

Теперь он работает хорошо.

Спасибо,
Сингаравелу