bmsimilarity的打分 调试参数
下面给出 一条极简、可复制的 DSL 链路:
1. 建索引(默认 BM25)
2. 插入文档
3. 触发 BM25 打分的查询
---
1️⃣ 创建索引(什么都不改,就是 BM25)
```json
PUT /demo
{
"mappings": {
"properties": {
"title": { "type": "text" } // 默认 similarity = BM25
}
}
}
```
---
2️⃣ 插入文档
```json
POST /demo/_doc/1
{ "title": "Elasticsearch uses BM25 as default similarity" }
POST /demo/_doc/2
{ "title": "BM25 is a probabilistic ranking function" }
```
---
3️⃣ 触发 BM25 打分查询(非 filter)
```json
GET /demo/_search
{
"query": {
"match": {
"title": "BM25"
}
}
}
```
---
✅ 验证方式
- 响应中每个 hit 都有 `_score` 字段,值各不相同 → 证明走了 BM25。
- 如果改成 `"constant_score"` 或 `filter` 子句,则 `_score` 全为固定值(1.0),不会调用 BM25。