Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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
C# ElasticSearch查询没有';行不通_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

C# ElasticSearch查询没有';行不通

C# ElasticSearch查询没有';行不通,c#,elasticsearch,nest,C#,elasticsearch,Nest,我有以下文件: { "_index": "taskmanager", "_type": "tasks", "_id": "AVn4vhIKiS68kYrc2Xp0", "_score": 0.8784157, "_source": { "Id": 2, "Title": "Hello World", "Description": "Description e

我有以下文件:

{
        "_index": "taskmanager",
        "_type": "tasks",
        "_id": "AVn4vhIKiS68kYrc2Xp0",
        "_score": 0.8784157,
        "_source": {
          "Id": 2,
          "Title": "Hello World",
          "Description": "Description example",
          "PublishDate": "2017-01-29T15:06:04",
          "IsCompleted": true
        }
我可以获得执行查询的文档列表:

var hits = elasticClient.Search<Task>(s => s);
var hits=elasticClient.Search(s=>s);
但我在试图获取包含“world”的文档时却一无所获

var hits = elasticClient.Search<DalTask>(s => s
                .Type("tasks")
                .Query(q => q
                    .Match(m => m
                        .Field(p => p.Title).Query("world")
                    )
                )
            ).Hits;
var hits=elasticClient.Search(s=>s
.类型(“任务”)
.Query(q=>q
.Match(m=>m
.Field(p=>p.Title).Query(“世界”)
)
)
).点击次数;
我的错在哪里?
请注意,我的索引设置为默认的“taskmanager”

默认情况下,将C#POCO属性名称序列化为请求中的Elasticsearch文档字段名称时,嵌套camel cases C#POCO属性名称,因此

.Field(p => p.Title)
变成

"title"
在请求中。查看您发布的回复中的
\u source
,您的字段名似乎是大小写为Pascal的,因此搜索请求中字段名的大小写不同,并且不匹配

您可以通过更改
连接设置上的
DefaultFieldNameInferrer(Func)
来更改嵌套序列化C#POCO属性名称的方式

var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var connectionSettings = new ConnectionSettings(pool)
    // serialize POCO property names verbatim
    .DefaultFieldNameInferrer(s => s);

var client = new ElasticClient(connectionSettings);

看起来很好。您可以调试这个并共享创建的查询吗。您可以快速查看“hits”对象以获取查询。您可以共享您的架构和索引设置吗