Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch elasticsearch 5.x:如何进行嵌套匹配查询搜索_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch elasticsearch 5.x:如何进行嵌套匹配查询搜索,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch elasticsearch 5.x:如何进行嵌套匹配查询搜索,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch elasticsearch 5.x:如何进行嵌套匹配查询搜索

elasticsearch elasticsearch 5.x:如何进行嵌套匹配查询搜索,elasticsearch,nest,elasticsearch,Nest,在以前版本的Nest中,我知道如何使用Nest执行与基本es匹配查询等效的操作: 我创建了一个示例索引和映射 PUT /base_well { "mappings": { "person": { "properties": { "first_name":{ "type": "string" },

在以前版本的Nest中,我知道如何使用Nest执行与基本es匹配查询等效的操作:

我创建了一个示例索引和映射

PUT /base_well
{
    "mappings": {
        "person": {
               "properties": {
                   "first_name":{
                       "type": "string"
                   },
                     "last_name":{
                       "type": "string"
                   },
                   "age":{
                       "type": "integer"
                   }
               }
        }
    }
}

POST /base_well/person
{
    "first_name":"Adrien",
    "last_name" : "Mopo",
    "Age" : 21
}

POST /base_well/person
{
    "first_name":"Polo",
    "last_name" : "Apou",
    "Age" : 36
}
ES请求实际上是有效的

 POST  /base_well/person/_search
    {
        "query":
        {
        "match":{
            "first_name":"Adrien"         
        }
    }
}
此Elasticsearch请求给我以下答复:

{
   "took": 3,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 1,
      "max_score": 0.2876821,
      "hits": [
         {
            "_index": "base_well",
            "_type": "person",
            "_id": "AVkq9PI5ybdSs0epy_Rb",
            "_score": 0.2876821,
            "_source": {
               "first_name": "Adrien",
               "last_name": "Mopo",
               "Age": 21
            }
         }
      ]
   }
}
不再工作的嵌套等效项:

public class Person
{
    public string first_name {get;set;}
    public string last_name { get; set; }
    public int Age { get; set; }
}

//nest equivalent does not work anymore
var uri = new Uri("http://localhost:9200");
var setting = new ConnectionSettings(uri);
setting.DisableDirectStreaming(true);
setting.DefaultIndex("base_well");
var Client = new ElasticClient(setting);

var response = Client.Search<Person>(s => s.Query(p => p.Term(q => q.first_name, "Adrien")));
var tooks = response.Took;
var hits = response.Hits;
var total = response.Total;
公共类人物
{
公共字符串first_name{get;set;}
公共字符串last_name{get;set;}
公共整数{get;set;}
}
//nest等价物不再起作用了
var uri=新的uri(“http://localhost:9200");
var设置=新连接设置(uri);
设置.DisableDirectStreaming(真);
设置默认索引(“基准井”);
var客户端=新的ElasticClient(设置);
var response=Client.Search(s=>s.Query(p=>p.Term(q=>q.first_name,“Adrien”));
var tooks=response.take;
var hits=response.hits;
var total=响应总数;
它给我0个文档结果,0个点击

你知道在上一个版本中怎么做吗?

var response=Client.Search(s=>s.Query(p=>p.Match(m=>m.Field(f=>f.first\u name.Query(“Marc”)));
var response = Client.Search<Person>(s => s.Query(p => p.Match(m => m.Field(f => f.first_name).Query("Marc"))));

如果要使用嵌套进行匹配查询,请将
p.Term(..)
替换为
p.match(..)
。必须如何编写?