用于在C#中搜索的索引文本数据

时间:2016-11-15 14:22:40

标签: c# search indexing

我有数据库表,如 [ Id = 1,标题 ="此处有些文字......"] 。此数据库存在于两个不同的托管环境中。我需要在两个表中实现单个端点进行搜索。此端点将用于UI上的自动完成。我的想法在这里:

    应用程序启动后的第一个请求中的
  1. :从托管环境,加入,缓存中获取数据(可以在 Application_Start 中应用某种预热)

  2. 我需要将这些数据编入索引以加快搜索速度,而不是像这样:

    foreach(string searchItem in searchtext.Split(' '))
    {
        foreach(Item item in listOfAllitems)
        {
            foreach(string titleItem in item.Title.Split(' '))
            {
                //check for startswith or contains here
            }
        }
    }
    

    当然需要进行最终排序。我对搜索的看法:

  3. 使用空格分割所有标题并构建排序数组,如下所示:

    {ambitious, [hashset of items where Title starts with 'ambitious']},
    {bad, [hashset of items where Title starts with 'bad']}
    ...
    
  4. 从搜索文本中对每个单词进行二进制搜索 - >结果是每个单词的哈希集列表

  5. 查找哈希集之间的交集,对结果进行排序

  6. 我是否重新发明轮子?你知道为此目的的好算法吗?
    UPDATE :两个数据库中的记录数量约为30.000。

0 个答案:

没有答案