我正在开发一个非常基本的Web搜索引擎原型,现在我想知道什么是分析用户原始查询并检测谁想要搜索的最佳方法。例如Google,Bing,Yahoo等...
一个示例用户原始查询如下所示:
Google+Maps+"South+Africa"+Brazil+OR+Italy+OR+Spain+-Argentina+Netherlands
我想将其拆分为每个术语(单个)的通用列表,如下所示:
IEnumerable<KeyValuePair<TermType, string>>
<TermType.All, "Google">
<TermType.All, "Maps">
<TermType.Exact, "South">
<TermType.Exact, "Africa">
<TermType.Any, "Brazil">
<TermType.Any, "Italy">
<TermType.Any, "Spain">
<TermType.None, "Argentina">
<TermType.None, "Netherland">
我不需要完整的代码,我需要指南,解决方案,提示或任何可帮助我写出最佳分析用户原始查询的内容。
提前致谢
最佳答案
不要考虑查询字符串。首先考虑您要允许的逻辑搜索操作以及您的引擎将如何满足它们。
如何从一个或多个查询字符串转换每组逻辑操作,然后成为实现细节。