小编tmo*_*boy的帖子

使用NEST Field Boosting进行弹性搜索

我正在使用NEST强类型客户端在C#中使用弹性搜索.我有一个包含条目的索引:

[ElasticType(Name = "Entry", IdProperty = "Id")]
public class Entry
{
    public string Id { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string Award { get; set; }
    public int Year { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果年份是参赛年份,例如2012年,奖励是参赛作品获奖的类型,可以为空.

然后,我想使用针对不同属性的提升来搜索这些条目.在下面的代码中,我希望结果在Title上的排名高于在Description上匹配的结果.

private IQueryResponse<Entry> GetMatchedEntries(string searchText)
{
    return _elasticClient.Search<Entry>(
                body =>
                body.Query(q => 
                           q.QueryString(qs => 
                                         qs.OnFieldsWithBoost(d => 
                                                              d.Add(entry => entry.Title, 5.0)
                                                              .Add(entry => entry.Description, 2.0))
                           .Query(searchText))));
}
Run Code Online (Sandbox Code Playgroud)

我现在被要求提高获奖者的成绩,并提升新的参赛作品(即年度).

我该怎么做呢?它是否需要作为索引服务的一部分或作为搜索的一部分来完成?

c# elasticsearch nest

10
推荐指数
1
解决办法
5734
查看次数

Haskell:从POSIXTime/NominalDiffTime中提取Int

我签约的网络请求,并作为查询字符串的一部分,我需要包括 oauth_timestamp=123456789其中123456789是因为1970-01-01 00:00 UTC的标称时间.

我一直在使用POSIXTime表示它,它只是NominalDiffTime的类型别名.

当我想将POSIXTime/NominalDiffTime转换为Text时,我遇到了问题,这样我就可以将它添加到查询字符串项集合中.

问题源于NominalDiffTime的构造函数是私有的,因此我无法提取实际数字.

即使是hacky的使用方式show也会附加"s"生成123456789s.

有没有一种从NominalDiffTime中提取实际数字的简单方法?

haskell type-conversion epoch

6
推荐指数
1
解决办法
492
查看次数

Haskell:默认模块前缀

如果调用的Stack Haskell项目MyProject包含以下模块:

src\
   Foo1
   Foo2
   Bar\
       Foo3
Run Code Online (Sandbox Code Playgroud)

我想在所有模块名称中添加项目前缀,以帮助我将其与其他软件包中的其他导入模块区分开来,例如 MyProject.Bar.Foo3

我知道我可以的内容移动src到一个文件夹MyProject,然后前缀所有的模块MyProject.,但有没有办法与阴谋的文件要做到这一点,例如project-prefix=MyProject,或者其他的解决方案,这将使我同样的效果,而无需进行重组项目文件?

haskell

6
推荐指数
0
解决办法
85
查看次数

Haskell类依赖项

以下代码不编译:

class Foo f where
  getInt :: f -> Int

class Bar b where
  getFooFromBar :: Foo f => b -> f

someFunction :: Bar b => b -> Int
someFunction bar = getInt $ getFooFromBar bar
Run Code Online (Sandbox Code Playgroud)

错误是 Could not deduce (Foo f) arising from a use of 'getInt' from the context (Bar b)

我知道我可以通过更改类来修复错误,Bar如下所示:

class Foo f => Bar f b where
  getFooFromBar :: b -> f
Run Code Online (Sandbox Code Playgroud)

但我更愿意,如果我不必添加f到所有的实例签名Bar.

有没有办法通过仅将Foo f约束仅保留在getFooFromBar …

haskell typeclass

3
推荐指数
1
解决办法
72
查看次数

Haskell管道过滤不同的值

如果我使用以下内容Source:

 sourceList [1,3,3,1,2,3]
Run Code Online (Sandbox Code Playgroud)

是否可以应用某些过滤器或组合器来仅允许向下游传递不同的值?

所以在我的例子中,只会[1,3,2]传递到下游?

haskell filter distinct-values conduit

2
推荐指数
1
解决办法
166
查看次数