.NET Framework 4.5;
ASP.NET MVC 5;
Elasticsearch 1.6.0 (运行在服务器上);
Elasticsearch.NET 1.6.1
NEST 1.6.1
Index - which contains HTML UI form
Search - which contains Elasticsearch.NET client and a query.
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); }
我通过谷歌搜索发现,在99%的情况下,人们忘记了包含一个程序集,通常是System.Linq。(Parameter) ? body
Error:
Cannot convert lambda expression to type 'object' because it is not a delegate type
好吧.. 我肯定没有忘记添加那个,但我认为也许我必须包含一个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;
虽然效果不如预期,但还是值得一试。现在,我不确定问题出在哪里,非常感谢任何帮助。