es 在查询中遇到一个问题,反复刷新一个搜索的时候,顺序会变,这个时候通过es-head查看的时候发现 es匹配度评分反复查询会变,导致搜索结果不稳定,同一个商品每次查询评分不一样。
原因是因为es 主副分片同步评分不一致导致的
通过preference 可以指定在某分片上搜索
这preference
是一个查询字符串参数,可以设置为
| 该操作仅在主分片上执行。 [ |
| 如果可能,操作将在主分片上执行,但如果不是,则将回退到其他分片。 [ |
| 该操作仅在副本分片上执行。如果有多个副本,则它们之间的优先顺序是未指定的。 [ |
| 如果可能,操作将在副本分片上执行,但如果不是,则将回退到其他分片。如果有多个副本,则它们之间的优先顺序是未指定的。 [ |
| 该操作仅在分配给本地节点的分片上执行。 |
| 如果可能,将对分配给本地节点的分片执行操作,否则将回退到其他分片。 |
| 如果可能,将在具有所提供的节点ID之一的节点上执行操作( |
| 将操作限制为指定的分片。( |
| 将操作限制为根据节点规范指定的 节点。如果在多个所选节点上存在合适的分片副本,则未指定这些副本之间的首选顺序。
|
[ 6.1.0 ] 在es 6版本已经弃用,在es7将会删除
GET /_search?preference=xyzabc123 { "query": { "match": { "title": "elasticsearch" } } }