Indexing Service 索引服务

在计算机管理--索引服务目录下添加新的编录,详细方法可上网查阅。

 

在asp.net中使用索引服务:

 

public static DataTable SearchFromIndex(string keywords)

    {

        //HttpContext.Current.Response.Write(keywords+"<br>");

        if (keywords == null || keywords.Trim() == ""||keywords.Length < 2) return new DataTable();

        if (ConfigurationManager.AppSettings["IndexingServiceCatalogName"] == null) return new DataTable();

        string catalogName = ConfigurationManager.AppSettings["IndexingServiceCatalogName"].ToString();

        string connString = "Provider=MSIDXS.1;Integrated Security .='';Data Source=" + catalogName;

        //替换全角空格符号为半角空格符号,并以空格拆分为数组

        string[] keys = keywords.Replace(" "," ").Split(' ');

        string sql = "SELECT Filename,Write,Path,Url,Characterization FROM SCOPE()  WHERE ";

        for (int i=0; i < keys.Length;i++ )

        {

            if (i == 0)

            {

                sql = sql + " CONTAINS('" + keys[i] + "')";

            }

            else

            {

                sql = sql + "AND CONTAINS('" + keys[i] + "')";

            }

        }

        sql = sql + " ORDER BY Rank DESC";

        try

        {

            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString);

            conn.Open();

            System.Data.OleDb.OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter(sql, conn);

            System.Data.DataSet dtSet = new System.Data.DataSet();

            cmd.Fill(dtSet, "SearchResults");

            if (dtSet != null)

            {

                DataTable dt = dtSet.Tables[0];

                //新建一列存放处理过后的文件路径

                dt.Columns.Add(new DataColumn("FilePath", typeof(string)));

                dt.Columns.Add(new DataColumn("RedContent",typeof(string)));

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    //将绝对路径转换为相对路径

                    string path = dtSet.Tables[0].Rows[i]["Path"].ToString();//文件路径

                    path = path.ToLower().Replace(@"/", "/");

                    path = path.Substring(path.IndexOf("data"));

                    dt.Rows[i]["FilePath"] = path;

                    //将关键字加红显示

                    string redContent = dtSet.Tables[0].Rows[i]["Characterization"].ToString();

                    for (int j = 0; j < keys.Length;j++ )

                    {

                        dt.Rows[i]["Filename"] = dt.Rows[i]["Filename"].ToString().Replace(keys[j], "<font style='color:red;'>" + keys[j] + "</font>");

                        redContent = redContent.Replace(keys[j],"<font style='color:red;'>" + keys[j] + "</font>");

                    }

                    dt.Rows[i]["RedContent"] = redContent;

                }

                return dtSet.Tables[0];

            }

            else

            {

                return new DataTable();

            }

        }catch(Exception ex)

        {

            return new DataTable();

        }

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值