二级域名对于英文网站推广有什么影响,网站优化分析软件,包头手机网站制作,校园图书馆网站建设BeetleX.ESDoc组件是基于ElasticSearch服务的文档搜索扩展组件。它在BeetleX.Elasticsearch的基础上包装一些基于文档检索的功能和方法#xff0c;可以让你在不了解ElasticSearch API的情况下直接存储#xff0c;删除和搜索相关信息。信息结构BeetleX.ESDoc定义了一个基础的文… BeetleX.ESDoc组件是基于ElasticSearch服务的文档搜索扩展组件。它在BeetleX.Elasticsearch的基础上包装一些基于文档检索的功能和方法可以让你在不了解ElasticSearch API的情况下直接存储删除和搜索相关信息。信息结构 BeetleX.ESDoc定义了一个基础的文档结构方便进行数据存储其结构如下: public class Document{//唯一标识public string ID { get; set; }//标题public string Title { get; set; } //文本内容public string Content { get; set; }//摘要public string Summary { get; set; } //分类名称public string Category { get; set; }//分类IDpublic string CategoryID { get; set; }//创建用户public string User { get; set; }//用户昵称public string NickName { get; set; }//标签多个用空格分隔public string Tag { get; set; }//源地址public string SourceUrl { get; set; }//创建时间public DateTime CreateTime { set; get; }}
使用 引用BeetleX.ESDoc组件后可以定义DocumentDB对象来进行文档存储和查询操作。DocumentDB db new DocumentDB(beetlex);
await db.Init(http://192.168.2.19:9200);
构建DocumentDB对象需要带上相关索引的名称在定义完成后调用Init方法来访问ElasticSearch服务并初始相关信息。DocumentDB是线程安全的一般使用的时候可定义成静态。基础方法//删除索引
Task DeleteIndex()
//重新创建索引
Task ReCreateIndex()
//删除文档
Taskbool Delete(string id)
//添加文档
Task Put(Document doc)
//获取标签汇总
Taskobject AggsTag(int top 60)
//获取年汇总
Taskobject AggsYear(int top 60)
//获取年-月汇总
Taskobject AggsMonth(int top 60)
//搜索
TaskTupleIListDocument, int Search(DocumentFilter filter)
添加示例 以下是blog.beetlex.io使用组件添加文档的情况public static async Task AsyncPost(DataBase.Post post, DataBase.Project project, HttpApiServer server)
{try{Document doc new Document();doc.ID post.ID;doc.CategoryID post.Project;doc.Content post.Content;doc.CreateTime post.CreateTime;doc.SourceUrl post.SourceUrl;doc.Summary post.Digest;doc.Category project?.Name;doc.Tag post.Tag;doc.Title post.Title;doc.User post.User;doc.NickName post.NickName;await DB.Put(eSBlog);}catch (Exception e_){if (server.EnableLog(EventArgs.LogType.Error)){server.Log(EventArgs.LogType.Error, null, $Async post to elasticsearch error {e_.Message});}}
}
查询 组件查询文档需要创建DocumentFilter来进行查询对象包括了一些查询条件的定义。//指定分类
public string CategoryID { get; set; }
//标签可以指定多个以空格分隔
public string Tag { get; set; }
//查询内容如果标题命中查询词会提升排序的权重
public string Query { get; set; }public int Page { get; set; }public int Size { get; set; }public DateTime? StartTime { get; set; }public DateTime? EndTime { get; set; }
存储数据可以通过Head查看相关文档索引存储情况查询示例 DocumentDB db new DocumentDB(beetlex);
await db.Init(http://192.168.2.19:9200);
var filter db.CreateFilter(0);
filter.Query beetlex vue;
var result await filter.Search();
foreach (var item in result.Item1)
{Print(item);
}
以上是查询内容中包括beetlex vue的数据 可以指定时间范围内的查询DocumentDB db new DocumentDB(beetlex);
await db.Init(http://192.168.2.19:9200);
var filter db.CreateFilter(0);
filter.Query beetlex vue;
filter.StartTime DateTime.Parse(2020-12-1);
var result await filter.Search();
foreach (var item in result.Item1)
{Print(item);
}
Elasticsearch要求 ES每个版本的API都有变化该组件是基于ES 6.5.3版本开发并需要安装IK分词插件。可以通过以下地址下载已经安装插件的版本链接https://pan.baidu.com/s/1U8hHOqVy_a4okY2l23N0Og提取码0wdxBeetleX开源跨平台通讯框架(支持TLS)轻松实现高性能:tcp、http、websocket、redis、rpc和网关等服务应用https://beetlex.io如果你想了解某方面的知识或文章可以把想法发送到henryfanmsn.com|adminbeetlex.io