如何建立一个内部搜索引擎

本文关键字:一个 内部 搜索引擎 建立 何建立 | 更新日期: 2023-09-27 18:04:15

我正在寻找一种方法来建立一个内部搜索引擎,将根据标准搜索交易。我的问题是更多的标准意味着更多的检查…所以如果有6个标准…我几乎必须在IF语句中做6 x 6 = 36 ELSE。这巨大的. .我敢肯定一定有别的办法。

解释:如果我有一个对象,它有A,B,C,D,E,F,我必须检查是否

A,B,C,D,E NOT F
A,B,C,D, NOT E, F
A,B,C, NOT D, E, F
etc..

那么我该如何处理呢?(我使用c#和WPF)

编辑:这里有更多细节。

  • 这是代码不是SQL。
  • 必须评估的标准数量取决于用户。

谢谢。

如何建立一个内部搜索引擎

做这种事情的方法是构建某种表达式树。这可能只是一个标准对象列表。每个对象都有一个"check"方法来说明元素是否通过测试。您可以在运行时构建此列表,然后使用它来检查每个候选项。

或者看看LINQ。非常合适。

我假设您正在构建一个sql命令。通常情况下,我们只会添加一系列IF/CASE语句(每个可能的参数一个),这些语句将附加SQL。但是现在,你可以使用LINQ:

var q = from c in Customers select c;
if(!String.IsNullOrEmpty(param.Name))
    q = q.Where(c => c.Name.Contains(param.Name));
if(param.CustID.HasValue)
    q = q.Where(c => c.ID == param.CustID);
if(!String.IsNullOrEmpty(param.CustAddr))
    q = q.Where(c => c.Addr.Contains(param.CustAddr));
//use your results!