ES :有两种常用查询
must 必须满足查询条件
should 非必须满足查询条件
如果想实现类似与mysql中的or 查询效果,必须使用should查询。但是shuold 会查询出不满足条件的数据 ,这必须加一个属性 "minimum_should_match": "1" 必须满足should条件中的一个查询条件 这样就能达到 or查询的结果了。
"minimum_should_match": "1" 这个属性不能乱用,如果没有should查询的条件不要加个这个属性
提供参考原生es查询条件:文章来源:https://www.toymoban.com/news/detail-506558.html
{
"from": 0,
"size": 30,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "status:0",
"fields": [],
"type": "best_fields",
"default_operator": "or",
"max_determinized_states": 10000,
"enable_position_increments": true,
"fuzziness": "AUTO",
"fuzzy_prefix_length": 0,
"fuzzy_max_expansions": 50,
"phrase_slop": 0,
"analyze_wildcard": true,
"escape": false,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1.0
}
},
{
"terms": {
"saleableRange": [
"0",
"2"
],
"boost": 1.0
}
},
{
"query_string": {
"query": "entity:Product",
"fields": [],
"type": "best_fields",
"default_operator": "or",
"max_determinized_states": 10000,
"enable_position_increments": true,
"fuzziness": "AUTO",
"fuzzy_prefix_length": 0,
"fuzzy_max_expansions": 50,
"phrase_slop": 0,
"escape": false,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1.0
}
}
],
"should": [
{
"query_string": {
"query": "shortName.keyword:*1011838*",
"fields": [],
"type": "best_fields",
"default_operator": "or",
"max_determinized_states": 10000,
"enable_position_increments": true,
"fuzziness": "AUTO",
"fuzzy_prefix_length": 0,
"fuzzy_max_expansions": 50,
"phrase_slop": 0,
"analyze_wildcard": true,
"escape": false,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1.0
}
},
{
"query_string": {
"query": "code.keyword:*1011838*",
"fields": [],
"type": "best_fields",
"default_operator": "or",
"max_determinized_states": 10000,
"enable_position_increments": true,
"fuzziness": "AUTO",
"fuzzy_prefix_length": 0,
"fuzzy_max_expansions": 50,
"phrase_slop": 0,
"analyze_wildcard": true,
"escape": false,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1.0
}
}
],
"adjust_pure_negative": true,
"minimum_should_match": "1",
"boost": 1.0
}
},
"sort": [
{
"sortNum": {
"order": "desc"
}
}
]
}
这个查询满足的条件是 shortName的查询条件 或 code 查询条件的结果文章来源地址https://www.toymoban.com/news/detail-506558.html
到了这里,关于ES 实现数据库or查询效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!