【问题标题】:Elasticsearch.NET & NEST - search always returning 0 resultsElasticsearch.NET & NEST - 搜索总是返回 0 个结果
【发布时间】:2018-11-07 05:05:14
【问题描述】:

我正在尝试使用 ElasticClient.Search 方法进行搜索,但无论我设置什么条件或搜索字段,我总是得到 0 个结果。

这是我的 POCO 的结构:

public class MyParent
{
    public MyChild MyChild { get; set; }
}

public class MyChild
{
    public string MyField { get; set; }
}

然后这是我的实际搜索代码:

string searchTerm = "myChild.myField";
string searchValue = "C";

Field searchField = new Field(searchTerm);

ISearchResponse<MyParent> result =
    Client.Search<MyParent>(s =>
        s.Query(q => q.Term(searchField, searchValue)));

if (result != null && 
    result.Documents != null && 
    result.Documents.Count != 0)
{
    ...
}

任何帮助表示赞赏!

【问题讨论】:

  • 我会得到执行的原始查询(从你的结果对象)并在 kibana 中运行它
  • 还检查结果是否成功,是否有错误提示
  • var query = Encoding.UTF8.GetString(result.RequestInformation.Request);
  • 我的猜测是它不会返回任何东西...尝试匹配查询而不是 Term
  • 使用 fiddler 嗅探原始 http,看看使用 Elastic 控制台有什么不同

标签: c# elasticsearch nest elasticsearch-net


【解决方案1】:

发现问题。我没有设置索引!我把我的搜索代码改成了这个,它可以工作:

ISearchResponse<MyParent> result =
    Client.Search<MyParent>(s =>
        s.Index("my_index_").Query(q => q.Term(searchField, searchValue)));

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多