Performing Sharepoint Search by Asp.net Form

Asked

Viewed 100 times

0

Good guys, I’m using Sharepoint as a file database, but I’m having trouble searching a document in the folders. I’m using the . NET CSOM.

        protected void Pesquisar_Click(object sender, EventArgs e)
    {
        //Setando as credenciais
        sharePointClient.DefinindoPropriedades();

        //Recuperando o contexto
        using (contextClient = sharePointClient.PegarContexto())
        {
            //Criando as colunas do DataTable
            dt.Columns.Add(new DataColumn("filename"));
            dt.Columns.Add("NomeArquivo", typeof(string));
            dt.Columns.Add("Teste123", typeof(string));
            dt.Columns.Add("Teste1234", typeof(string));
            dt.Columns.Add("ServeUrl", typeof(string));


            //Criando o objeto KeyWord, ele será responsavel pela pesquisa
            KeywordQuery keywordQuery = new KeywordQuery(contextClient);

            //Setando o path(Escopo que irá realizar a pesquisa) e pesquisando pelo titulo tambem (Title)...Ou pode optar pela pesquisa logo abaixo
            //keywordQuery.QueryText = "path: nome do meu path* and title: EVENTO*";
            var text = "";

            var scope = "nome do scope";
            keywordQuery.QueryText = String.Format("scope: {1}", text, scope);

            //Ou podemos optar por essa pesquisa, que realizar a busca tanto pelo sharePoint quanto pelo OneDrive
            //keywordQuery.QueryText = TxtCaixaPesquisa.Text;

            //Criando o objeto Executador da pesquisa e passando o contexto
            SearchExecutor searchExecutor = new SearchExecutor(contextClient);

            //Executando a pesquisa e colocando em um array de resultado (Incluindo Arquivos (Files) ou Pastas (Folders) ) não há distinção.
            ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);

            sharePointClient.ExecutarAcao(contextClient);

            //OBS.: o resultado volta Pastas e Arquivos uma verificação possivel é utilizar um if no "FileType" pois pastas geralmente voltam com o type .HTML, já arquivos podem ser .Pdf .Doc .Txt


            //Verificando se o arquivo está nulo
            if (results != null)
            {
                foreach (var resultRow in results.Value[0].ResultRows)
                {
                    if (resultRow["Path"].ToString().Contains("nome do scope"))
                    dt.Rows.Add("Arquivo.png", resultRow["Title"] + "." + resultRow["FileType"], resultRow["Path"], resultRow["Write"], resultRow["Path"]);
                }

            }
            gridViewArquivos.DataSource = dt;
            gridViewArquivos.DataBind();
        }
    }

He never finds anything !

  • 1

    Hello, Within Sharepoint the search works? Does the native search work? I advise you to create this solution within Sharepoint first. Do a web part and test. Running there is sure that is ok and should work out. Better go by parts.

  • It works, I’ll post an image

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.