使用Elasticsearch的查询DSL中的wildcard查询,可以模拟MySQL的like查询。/product_name/_search?q=product_name:*关键词*&typed_keys=true。
在Elasticsearch中实现MySQL的LIKE查询,可以使用以下步骤:
1、使用match
查询进行模糊匹配
2、使用wildcard
通配符进行模糊匹配
3、使用fuzzy
查询进行模糊匹配
4、使用multi_match
查询进行多个字段的模糊匹配
下面分别介绍这四种方法:
1. 使用match
查询进行模糊匹配
{ "query": { "match": { "field_name": { "query": "关键词", "operator": "and", "fuzziness": "AUTO" } } } }
field_name
是需要进行模糊匹配的字段名,关键词
是需要匹配的关键词。fuzziness
参数设置为AUTO
表示自动选择合适的模糊度。
2. 使用wildcard
通配符进行模糊匹配
{ "query": { "wildcard": { "field_name": "关键词*" } } }
field_name
是需要进行模糊匹配的字段名,关键词*
表示以关键词开头的任意字符串。
3. 使用fuzzy
查询进行模糊匹配
{ "query": { "fuzzy": { "field_name": { "value": "关键词", "fuzziness": "AUTO" } } } }
field_name
是需要进行模糊匹配的字段名,关键词
是需要匹配的关键词。fuzziness
参数设置为AUTO
表示自动选择合适的模糊度。
4. 使用multi_match
查询进行多个字段的模糊匹配
{ "query": { "multi_match": { "query": "关键词", "fields": ["field1", "field2"], "fuzziness": "AUTO" } } }
fields
是一个包含需要进行模糊匹配的字段名的数组,query
是需要匹配的关键词。fuzziness
参数设置为AUTO
表示自动选择合适的模糊度。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/500493.html