我在ElasticSearch中有3个索引,我会一次一个地查询它们(这意味着-我希望在任何时候只有一个索引的结果)。如何声明ElasticSearch客户端和重用?
在SearchRequest中添加索引名看起来不像是一个选项,因为当我在启动客户端时没有给出任何默认索引名时,它会给出异常。添加下面的代码,任何帮助都是非常感谢的。
string cloudid = "something";
var credentials = new BasicAuthenticationCredentials("something", "something");
var connectionPool = new CloudConnectionPool(cloudid, credentials);
var settings = new ConnectionSettings(connectionPool);
var client = new ElasticClient(settings); //EXCEPTION HERE THAT - Index Name is NULL
ISearchRequest searchRequest = new SearchRequest("indexname")
{
Query = new TermQuery { Field = Infer.Field<Doctor>(d => d.FirstName), Value = "FirstName73069" },
Size = 10000
};
var secondSearchResponse = await client.SearchAsync<Doctor>(searchRequest);
这是我的代码,它在第5行中断(添加了注解)。注意:对于我的用例,我必须使用SearchRequest对象。请相应地提出建议。
使用Nest 7.17.4版本。
1条答案
按热度按时间nnsrf1az1#
当无法为请求解析其他索引名时,使用默认索引名。
如果要在创建连接时将不同的CLR类型Map到不同的索引,可以使用DefaultMappingFor
上面的查询将默认索引定义为“defaultindex”,并分别为模型Index1和Index2定义索引
在使用新的SearchRequest()时,将根据设置推断出的“index1”来查询请求。
也可以将索引名指定为SearchRequest(“index1”)