- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个看起来像这样的模型类:
public class MySearchDocument
{
public string ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int DBID { get; set; }
}
multi_match
给予
ID
更多的权重和
Name
, 像这样:
{
"query": {
"multi_match": {
"query": "burger",
"fields": [
"ID^1.2",
"Name^1.1",
"Description"
],
"auto_generate_synonyms_phrase_query": true
}
}
}
ID
属性,但出于一些原因,最好使用
DBID
作为 Elasticsearch 中的 Id 属性。我尝试了这 3 种不同的方法,
单独和组合 :
new BulkIndexOperation<MySearchDocument>(d) { Id = d.DBID }
ConnectionSettings
使用 DefaultMappingFor<MySearchDocument>(d => d.IdProperty(p => p.DBID))
MySearchDocument
上的属性: [ElasticsearchType(IdProperty = nameof(DBID))]
_id
索引文档中的字段被设置为我的
DBID
属性(property)。但是,在我的集成测试中,搜索结果完全出乎意料。具体来说,我有一个测试:
MySearchDocument
填充它小号 Refresh
在索引上只是为了确保它准备好了。 _score
同一文档在不同的测试运行中通常会有所不同。有时,变化的分数是与
ID
的文档相关联的分数。字段匹配搜索词,其他时候它是不同文档的分数。
Refresh
后等待几秒钟,只是为了确保索引已准备就绪。这些都没有影响 - 测试与 Id 推理一致地通过,并且始终不一致。我知道这个世界上没有什么是真正随机的,所以我觉得我一定在这里错过了什么。让我知道更多细节是否会有所帮助。提前致谢。
最佳答案
搜索相关性分数是按分片计算的,哈希算法对 _id
的值进行计算确定给定文档将被索引到哪个主分片中。
听起来您在索引 时可能会看到这种效果。小样 N > 1
中的文档数量主分片;在这种情况下,本地相关性分数可能不同到足以表现出一些奇怪的 _score
s 回来了。随着更大的文档集和均匀分布,本地分片分数的差异会减少。
为了测试目的,您可以采取几种方法来克服这个问题:
dfs_query_then_fetch
发出搜索请求时。这告诉 Elasticsearch 先获取本地相关性分数以计算全局相关性分数,然后使用 _score
的全局分数. There is a slight overhead to using dfs_query_then_fetch
. 关于 Elasticsearch 巢 : specifying Id explicitly seems to cause inconsistent search scores,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53676107/
Elasticsearch在Elasticsearch 2.3.0中发布了新的Reindex API,当前版本的NEST(2.1.1)是否已使用此api?如果没有,有计划这样做吗? 我知道当前版本有一
我使用NEST进行 flex 搜索已有一段时间了,直到现在,我已经使用了常规的ElasticSearchClient.Index(...)函数,但是现在我想在批量操作中为许多项目建立索引。 我找到了I
我正在构建一个过滤器页面,其中包含方面等,它应该可以正常工作。 现在我们的客户有一个请求,基本上是“能够决定哪些分类项目出来”。 每个产品都装饰有产品展示订单,并位于产品线中。 我们得到了这些示例产品
以下是 tar 的已知且长期存在的不一致/特性吗?我想答案是肯定的。 cd mydir tar cvpf dec14.tar . tar xvpf dec14.tar -C . 文件被提取到它们应该在
大家好,我正在尝试使用 Nest js 和 mongodb 构建 api。 我正在尝试在架构之间建立关系,当我尝试从角色填充资源时出现错误 [Nest] 12308 - 2019-08-09 4:
即使使用来自 class-transformer 的 @Exclude() 装饰器添加到变量的库,它在创建对象时返回。 使用空构造函数和启用 toPlainOnly 属性都失败了: @Exclude(
我有一个看起来像这样的模型类: public class MySearchDocument { public string ID { get; set; } public string
我目前使用 ElasticSearch NEST 7.x图书馆。 在托管我的 ElasticSearch 主节点的 VM 上,我正在运行一个通过 REST 接收 JSON 数据的 Web 服务器。然后
我是一名优秀的程序员,十分优秀!