在 Nest v7.10.0 中通过 SearchRequest 搜索特定的索引名称

问题描述

我在同一台服务器中有 2 个索引,它们具有相同的结构和不同的索引名称。 第一个是出于开发原因,第二个是出于 uat 原因。 我在 appsettings 中有两个索引名称,程序使用适当的取决于环境。 我想在 searchRequest 中声明索引名称,但在 nest v7.10.0 searchRequest 中没有索引。


            ISearchRequest searchRequest = new SearchRequest
            {
                From = query.Payload.Paging?.Skip,Size = query.Payload.Paging?.Take ?? 10000,Sort = sortField != null ? new List<ISort> { sortField } : null,Query = new QueryContainer(boolQuery),Source = new SourceFilter
                {
                    Includes = Infer.Field<EventHistory>(path: eventHistory => eventHistory.Id)
                }
            };

            ISearchResponse<EventHistory> searchResponse = await _elasticclient.SearchAsync<EventHistory>(searchRequest);

解决方法

构造函数接受一个 Indices 参数

ISearchRequest searchRequest = new SearchRequest("foo")
{
    
    From = query.Payload.Paging?.Skip,Size = query.Payload.Paging?.Take ?? 10000,Sort = sortField != null ? new List<ISort> { sortField } : null,Query = new QueryContainer(boolQuery),Source = new SourceFilter
    {
        Includes = Infer.Field<EventHistory>(path: eventHistory => eventHistory.Id)
    }
};

ISearchResponse<EventHistory> searchResponse = await _elasticClient.SearchAsync<EventHistory>(searchRequest);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...