我正在开发一个非常基本的网络搜索引擎原型,现在我想知道分析用户原始查询和检测想要搜索的内容的最佳方法是什么。像谷歌,必应,雅虎等...
示例用户原始查询是这样的:
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">
我不想要完整的代码,我需要指导,解决方案,提示或任何有助于我最好地分析用户原始查询的内容。
提前致谢
答案 0 :(得分:1)
不要考虑查询字符串。首先考虑您希望允许的逻辑搜索操作,以及您的引擎如何满足它们。
如何从一个或多个查询字符串转换每组逻辑操作,然后成为实现细节。