首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >6.WokflowCore之Elasticsearch搜索

6.WokflowCore之Elasticsearch搜索

作者头像
步步为营DotNet
发布2026-06-17 09:21:26
发布2026-06-17 09:21:26
50
举报

Elasticsearch搜索

nuget安装WorkflowCore.Providers.Elasticsearch

设置

代码语言:javascript
复制
using Nest;
services.AddWorkflow(cfg =>
{
    ...
    cfg.UseElasticsearch(new ConnectionSettings(new Uri("http://localhost:9200")), "index_name");
});

使用

ISearchIndex服务注入,并调用Search方法

代码语言:javascript
复制
Search(string terms, int skip, int take, params SearchFilter[] filters)
  • terms

以空格分隔的搜索字符串,空字符串会匹配到所有内容。该字符串会对工作流的描述、引用、状态、工作流定义进行搜索。

如果自定义数据对象实现了ISearchable,则可以在自定义数据对象中进行搜索。

代码语言:javascript
复制
 using WorkflowCore.Interfaces;
 ...
 public class MyData : ISearchable
{
    public string StrValue1 { get; set; }
    public string StrValue2 { get; set; }

    public IEnumerable<string> GetSearchTokens()
    {
        return new List<string>()
        {
            StrValue1,
            StrValue2
        };    
    }
}

searchIndex.Search("puppies", 0, 10);查询所有包含puppies字段

  • skip/take

跳过多少,取多少

  • filters

用于搜索的筛选器列表,可以用来刷选标量、日期范围、数字范围、状态

案例:
  • 通过引用过滤
代码语言:javascript
复制
 using WorkflowCore.Models.Search;
 ...
 searchIndex.Search("", 0, 10, ScalarFilter.Equals(x => x.Reference, "My Reference"));
  • 通过启动工作流的日期
代码语言:javascript
复制
searchIndex.Search("", 0, 10, DateRangeFilter.After(x => x.CreateTime, startDate));
  • 通过期间
代码语言:javascript
复制
searchIndex.Search("", 0, 10, DateRangeFilter.Between(x => x.CompleteTime, startDate, endDate));
  • 通过状态
代码语言:javascript
复制
searchIndex.Search("", 0, 10, StatusFilter.Equals(WorkflowStatus.Complete));
  • 筛选自定义数据类
代码语言:javascript
复制
class MyData
 {
	public string Value1 { get; set; }
	public int Value2 { get; set; }
 }

 searchIndex.Search("", 0, 10, ScalarFilter.Equals<MyData>(x => x.Value1, "blue moon"));
 searchIndex.Search("", 0, 10, NumericRangeFilter.LessThan<MyData>(x => x.Value2, 5))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Elasticsearch搜索
    • 设置
    • 使用
      • 案例:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档