解决: URI不正确。是“h || p://#.#.#.#/:9200”,应该是“h || p://#.#.#.#:9200”。这导致API将端口号更改为80.令人惊讶的是,API实际上能够使用错误的端口号连接到ElasticSearch实例。
我是NEST和ElasticSearch的新手,并尝试在NEST中组合一个简单的MatchAll查询。
当我从Sense执行MatchAll时
POST /movies/movie/_search
{
"query": {
"match_all": {}
}
}
我获得了电影索引中的所有电影对象。
但是当我尝试NEST查询时
var result = client.Search(s => s.Type("movie").MatchAll());
我一无所获。尝试将返回类型设置为电影类,但仍然没有结果。
public class Movie
{
public string title { get; set; }
public string director { get; set; }
public int year { get; set; }
public List<string> genres { get; set; }
}
还根据此回复尝试了.AllIndices()和/或.AllTypes() Searching an elasticsearch index with NEST yields no results
有什么想法吗?
编辑: 下面是连接字符串设置默认索引。
ConnectionSettings connection = new ConnectionSettings(uri).UsePrettyResponses().SetDefaultIndex("movies");
答案 0 :(得分:1)
您必须检查IsValid
上的result
以查看呼叫是否成功。
result.ConnectionStatus
将包含您确定错误所需的所有信息。
如果您想要抛出异常,可以通过调用:
启用它.SetConnectionStatusHandler(c=> {
if (!c.Success)
throw new Exception(c.ToString());
})
在ConnectionSettings
在ConnectionStatus
对象上调用ToString以人类可读的形式打印所有请求和响应详细信息。