分布式搜索引擎elasticsearch搜索功能目录ContentsDSL查询文档搜索结果处理RestClient查询文档黑马旅游案例DSL查询文档•DSL查询分类•全文检索查询•精准查询•地理坐标查询•组合查询01DSL查询语法DSLQuery的分类Elasticsearch提供了基于JSON的DSL(DomainSpecificLanguage)来定义查询。常见的查询类型包括:•查询所有:查询出所有数据,一般测试用。例如:match_all•全文检索(fulltext)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如:•match_query•multi_match_query•精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。例如:•ids•range•term•地理(geo)查询:根据经纬度查询。例如:•geo_distance•geo_bounding_box•复合(compound)查询:复合查询可以将上述各种查询条件组合起来,合并查询条件。例如:•bool•function_scoreDSL查询语法DSLQuery基本语法查询的基本语法如下:GET/indexName/_search{"query":{"查询类型":{"查询条件":"条件值"}}}//查询所有GET/indexName/_search{"query":{"match_all":{}}}总结总结查询DSL的基本语法是什么?•GET/索引库名/_search•{"query":{"查询类型":{"FIELD":"TEXT"}}}DSL查询语法-match查询DSL查询语法全文检索查询全文检索查询,会对用户输入内容分词,常用于搜索框搜索:DSL查询语法全文检索查询match查询:全文检索查询的一种,会对用户输入内容分词,然后去倒排索引库检索,语法:multi_match:与match查询类似,只不过允许同时查询多个字段,语法:GET/indexName/_search{"query":{"match":{"FIELD":"TEXT"}}}GET/indexName/_search{"query":{"multi_match":{"query":"TEXT","fields":["FIELD1","FIELD12"]}}}总结总结match和multi_match的区别是什么?•match:根据一个字段查询•multi_match:根据多个字段查询,参与查询字段越多,查询性能越差DSL查询语法-全文检索查询DSL查询语法精确查询精确查询一般是查找keyword、数值、日期、boolean等类型字段。所以不会对搜索条件分词。常见的有:•term:根据词条精确值查询•range:根据值的范围查询DSL查询语法精确查询-语法精确查询常见的有term查询和range查询。语法如下:term查询:range查询://term查询GET/indexName/_search{"query":{"term":{"FIELD":{"value":"VALUE"}}}}//range查询GET/indexName/_search{"query":{"range":{"FIELD":{"gte":10,"lt...