调整我的搜索功能

时间:2010-01-25 12:49:24

标签: c# .net database search

我测试了我在实时网站上实施的搜索功能。我遇到了一些小问题。我不能在搜索框中放入特殊字符,否则我的应用程序将崩溃。 我尝试使用它崩溃的角色的一些替换来解决这个问题,但这不能解决痛苦。 当我输入此标志时:*进入搜索框,它给了我以下错误:

无法解析'< %%> echo; ':''或'?'不允许作为WildcardQuery中的第一个字符。我之前遇到过这个错误,然后剥离了所有单词之间的空格。然后错误消失了。但是,当我现在替换它:*用这个:“”我将得到上述错误。 有什么标准方法可以解决特殊字符问题吗? 我会在这里写下我的一些代码,这样我就可以得到更好的反馈。

Analyzer analyzer = new StandardAnalyzer();
QueryParser qpContent = new QueryParser(Index.ContentFieldName, analyzer);
keyword.Trim();

keyword = keyword.Replace("\"", "");
keyword = keyword.Replace("^", "");
keyword = keyword.Replace("*", "");

Query queryContent = qpContent.Parse(keyword + "*");              
QueryParser qpLanguage = new QueryParser("language", analyzer);
Query queryLanguage = qpLanguage.Parse(Sitecore.Context.Language.Name.ToString());

如您所见,我首先替换*,然后再将其添加回查询工具中。我不是100%熟悉这种功能,因此根本不知道我做错了什么。非常感谢所有帮助,谢谢!

1 个答案:

答案 0 :(得分:1)