ASP.Net ElasticSearch

问题描述 投票:0回答:1

[您好,我正在尝试使用asp.net和NEST库编写一个简单的Web视图,它将使用我的ElasticSearch数据库,并在单击按钮时将其显示在textview中。

这是单击按钮时输入的代码,您能看看吗,告诉我我走的路是好还是不好?

using Elasticsearch.Net;
using Nest;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ElasticsearchWeb
{
    public class shekspir
    {
        public string type { get; set; }
        public int line_id { get; set; }
        public string play_name { get; set; }
        public int speech_number { get; set; }
        public float line_number { get; set; }
        public string speaker { get; set; }
        public string text_entry { get; set; }
    }

    public partial class Default : System.Web.UI.Page
    {
        public static Uri GetElasticHost()
        {
            var host = "http://localhost:9200";
            return new Uri(host);
        }

        public static ElasticClient GetElasticClient(ConnectionSettings settings = null)
        {
            if (settings == null)
            {
                var node = GetElasticHost();
                var pool = new SingleNodeConnectionPool(node);
                settings = new ConnectionSettings(pool);
            }
            settings.DisableDirectStreaming(true);
            var client = new ElasticClient(settings);
            return client;
        }

        public static List<shekspir> GetAllShekspir(int ID)
        {
            var workОfShakespeare = GetElasticClient();

            ISearchResponse<shekspir> result = null;

            result = workОfShakespeare.Search<shekspir>(x => x
            .Index("shekspir")
            .Query(q => q
                .MatchAll())
                .Size(100)
            );

            List<shekspir> list = new List<shekspir>();
            foreach (var r in result.Hits)
            {
                shekspir a = r.Source;
                list.Add(a);
            }

            return list;
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            List<shekspir> list = GetAllShekspir (1);

            foreach (shekspir u in list)
            {
                litInfo.Text += u.play_name + ": " + u.text_entry + "<br>";
            }
        }
    }
}
c# .net visual-studio elasticsearch nest
1个回答
0
投票
List<shekspir> list = new List<shekspir>();
foreach (var r in result.Hits)
{
    shekspir a = r.Source;
    list.Add(a);
}

如果您只想将上面返回的文档替换为

var list= result.Documents
© www.soinside.com 2019 - 2024. All rights reserved.