Ale*_*ice 4 c# lambda delegates elasticsearch nest
我遇到了完全相同的问题(并没有回答)ElasticSearch NEST Search
我用:
.NET Framework 4.5;
ASP.NET MVC 5;
Elasticsearch 1.6.0(在服务器上);
Elasticsearch.NET 1.6.1
NEST 1.6.1
我有一个MVC控制器,它有两个动作:
索引 - 包含HTML UI表单
搜索 - 包含Elasticsearch.NET客户端和查询.
public ActionResult Search(SearchCreteria sc)
{
Settings settings = new Settings();
Client client = new Client(settings);
ElasticsearchClient esClient = client.Get();
var test = esClient.Search<Contract>(body => body.Query(query => query.QueryString(qs => qs.Query("test"))));
return View(test);
}
Run Code Online (Sandbox Code Playgroud)整个" body => body.Query(query => query.QueryString(qs => qs.Query("test"))) "上面代码中的lambda表达式有下划线的红色下划线,并带有以下工具提示:
(参数)?身体
错误:
无法将lambda表达式转换为类型"object",因为它不是委托类型
我搜索了问题并发现在99%的情况下,人们忘记包含一个程序集,通常是System.Linq.
嗯..我绝对不会忘记添加那个,但我可能我必须包括一个NEST特定组件或类似的东西(我确定不是真的,除了NEST本身),所以我决定添加一切我虽然可能有点相关,我最终得到了这个:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using WebUI.Models.Concrete;
using Domain.Concrete.Entities;
using Domain.Concrete.Connectivity.Elastic;
using Domain.Concrete.Processors.Elastic;
using Elasticsearch;
using Elasticsearch.Net;
using Elasticsearch.Net.Connection.Configuration;
using Elasticsearch.Net.Connection.RequestState;
using Elasticsearch.Net.Connection.Security;
using Elasticsearch.Net.ConnectionPool;
using Elasticsearch.Net.Exceptions;
using Elasticsearch.Net.Providers;
using Elasticsearch.Net.Serialization;
using Nest;
using Nest.Domain;
using Nest.DSL.Descriptors;
using Nest.DSL.Query;
using Nest.DSL.Query.Behaviour;
using Nest.DSL.Visitor;
using Nest.Resolvers.Converters.Aggregations;
using Nest.Resolvers.Converters.Filters;
using Nest.Resolvers.Converters.Queries;
using Nest.Resolvers.Writers;
Run Code Online (Sandbox Code Playgroud)
它并没有像预期的那样有所帮助,但值得一试.所以现在,我不确定问题出在哪里,任何帮助都会受到高度赞赏.
答案已经在问题本身的评论中提供,但是为未来的googlers添加了这个.
Elasticsearch.NET
是一个准系统低级ElasticsearchClient客户端,它只接受字符串,匿名/动态对象,或byte[].同样,它也没有响应的返回类型.此配置时,此客户端支持连接池和节点故障转移.该客户端的80%是自动生成的.
此客户端仅在您与Elasticsearch集成时才有用,该Elasticsearch仅存在少数几个调用,并且您不希望引入依赖于例如Json.NET.仅使用它的库的示例是Serilog.Sinks.Elasticsearch
巢
高级ElasticClient客户端具有99.9%的所有请求和响应的类型.99/100次这是您要使用的客户端.NEST使用Elasticsearch.NET将请求分派给正确的elasticsearch API端点,并使用相同的连接池和故障转移基础结构.
| 归档时间: |
|
| 查看次数: |
2288 次 |
| 最近记录: |