ElasticSearch.NET和F#问题w /查询

时间:2016-02-05 00:51:28

标签: elasticsearch f# c#-to-f# elasticsearch-net

我正在尝试将C#代码库转换为使用ElasticSearch.NET客户端的F#。 F#似乎没有正确推断出正确的类型。

这是有效的C#代码:

var res = es.Search<Question>(s => s
   .Query(q => q
   .FunctionScore(fs => fs
   .Query(fq => fq.MatchAll())
   .Functions(f => f.RandomScore(r.Next()))
)).Size(count).Index("questions"));

等效或匹配的F#代码如下,不编译:

    let questions = es.Search<Question>(fun s ->
                    s.Query(fun q -> q.FunctionScore(
                                        fun fs -> fs.Query(
                                                    fun fq->fq.MatchAll()).Functions(
                                                            fun f -> f.RandomScore(r.Next())) |> ignore)).Size(count).Index("questions")).Documents.ToList()

此代码使用F#正常工作,但是,这不是我需要的:

let questions2 = es.Search<Question>(fun s -> s.Query(fun q -> q.MatchAll())).Documents.ToList()

未编译的F#显示以下错误:

  

根据之前的信息查找不确定类型的对象   这个计划。在此程序之前可能需要类型注释   指向约束对象的类型。这可能允许查找   待解决。

问题的F#类型签名如下:

type Question = {id:Guid, Text:string}

0 个答案:

没有答案