【发布时间】:2014-01-23 15:33:37
【问题描述】:
在 Umbraco 中,我使用 Examine 在网站中进行搜索,但内容是法语的。一切正常,除了当我搜索“Français”时,它与“Francais”的结果不同。有没有办法忽略那些法语字符?我试图为 Leucene/Examine 找到一个 FrenchAnalyser,但没有找到任何东西。我使用 Fuzzy,所以即使单词不同,它也会返回结果。
这是我的搜索代码:
public static ISearchResults Search(string searchTerm)
{
var provider = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
var criteria = provider.CreateSearchCriteria(BooleanOperation.Or);
var crawl = criteria.GroupedOr(BoostedSearchableFields, searchTerm.Boost(15))
.Or().GroupedOr(BoostedSearchableFields, searchTerm.Fuzzy(Fuzziness))
.Or().GroupedOr(SearchableFields, searchTerm.Fuzzy(Fuzziness))
.Not().Field("umbracoNavHide", "1");
return provider.Search(crawl.Compile());
}
【问题讨论】:
-
我知道我不会很有帮助,但是,如果有办法,您可以在您正在搜索的内容中将所有特殊字符转换为普通字符。
-
不是真的,我已经考虑过了,但是谢谢
-
为什么不能替换字符?我真的没有看到任何其他方式。假设您已经检查了所有方法重载..
-
问题不是当我搜索“Français”时,而是当我搜索没有特殊字符的“Francais”时。我没有得到任何结果。看起来索引是用特殊字符构建的,但即使我搜索没有特殊字符的单词,它也应该返回结果。
标签: c# umbraco lucene.net examine