本文共 2938 字,大约阅读时间需要 9 分钟。
best fields策略 概念
POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : { "title" : "this is java and elasticsearch blog"} }{ "update": { "_id": "2"} }{ "doc" : { "title" : "this is java blog"} }{ "update": { "_id": "3"} }{ "doc" : { "title" : "this is elasticsearch blog"} }{ "update": { "_id": "4"} }{ "doc" : { "title" : "this is java, elasticsearch, hadoop blog"} }{ "update": { "_id": "5"} }{ "doc" : { "title" : "this is spark blog"} }
POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : { "content" : "i like to write best elasticsearch article"} }{ "update": { "_id": "2"} }{ "doc" : { "content" : "i think java is the best programming language"} }{ "update": { "_id": "3"} }{ "doc" : { "content" : "i am only an elasticsearch beginner"} }{ "update": { "_id": "4"} }{ "doc" : { "content" : "elasticsearch and hadoop are all very good solution, i am a beginner"} }{ "update": { "_id": "5"} }{ "doc" : { "content" : "spark is best big data solution based on scala ,an programming language similar to java"} }
下面这个就是multi-field搜索,多字段搜索
GET /forum/article/_search{ "query": { "bool": { "should": [ { "match": { "title": "java solution" }}, { "match": { "content": "java solution" }} ] } }}
算一下doc4的分数
{ "match": { "title": "java solution" }},针对doc4,是有一个分数的{ "match": { "content": "java solution" }},针对doc4,也是有一个分数的所以是两个分数加起来,比如说,1.1 + 1.2 = 2.3matched query数量 = 2总query数量 = 22.3 * 2 / 2 = 2.3
算一下doc5的分数
{ "match": { "title": "java solution" }},针对doc5,是没有分数的{ "match": { "content": "java solution" }},针对doc5,是有一个分数的所以说,只有一个query是有分数的,比如2.3matched query数量 = 1总query数量 = 22.3 * 1 / 2 = 1.15doc5的分数 = 1.15 < doc4的分数 = 2.3
{ "match": { "title": "java solution" }},针对doc4,是有一个分数的,1.1{ "match": { "content": "java solution" }},针对doc4,也是有一个分数的,1.2取最大分数,1.2
{ "match": { "title": "java solution" }},针对doc5,是没有分数的{ "match": { "content": "java solution" }},针对doc5,是有一个分数的,2.3取最大分数,2.3
然后doc4的分数 = 1.2 < doc5的分数 = 2.3,所以doc5就可以排在更前面的地方,符合我们的需要
GET /forum/article/_search{ "query": { "dis_max": { "queries": [ { "match": { "title": "java solution" }}, { "match": { "content": "java solution" }} ] } }}
转载地址:http://beonn.baihongyu.com/