快速开始使用Elasticsearch搜索引擎 搜索数据 全文检索 假设用户进入该电商网站,她想要查找名称包含“春装牛仔裤”的商品信息,可以搜索“春装牛仔裤”。这里使用Kibana演示用户搜索数据在后台的执行命令和返回结果。 执行命令如下所示。 (7.x之前版本) GET /mystore/products/search { "query": {"match": { "productName": "春装牛仔裤" }} } (7.x之后版本) GET /mystore/search { "query": {"match": { "productName": "春装牛仔裤" }} } 返回结果如下所示。 { "took" : 3, "timedout" : false, "shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 4, "relation" : "eq" }, "maxscore" : 1.7965372, "hits" : [ { "index" : "mystore", "type" : "doc", "id" : "9xf6VHIBfClt6SDjw7H5", "score" : 1.7965372, "source" : { "productName" : "2018春装新款牛仔裤女装", "size" : "M" } }, { "index" : "mystore", "type" : "doc", "id" : "Bf6VHIBfClt6SDjw7H5", "score" : 1.7965372, "source" : { "productName" : "2018春装新款牛仔裤女装", "size" : "S" } }, { "index" : "mystore", "type" : "doc", "id" : "Rf6VHIBfClt6SDjw7H5", "score" : 0.5945667, "source" : { "productName" : "2017春装新款休闲裤女装", "size" : "L" } }, { "index" : "mystore", "type" : "doc", "id" : "hf6VHIBfClt6SDjw7H5", "score" : 0.5945667, "source" : { "productName" : "2017春装新款休闲裤女装", "size" : "S" } } ] } } Elasticsearch支持分词,上面执行命令会将“春装牛仔裤”分词为“春装”和“牛仔裤”。 Elasticsearch支持全文检索,上面执行命令会在所有商品信息中搜索包含“春装”或“牛仔裤”的商品信息。 Elasticsearch与传统数据库不同,它能借助倒排索引在毫秒级返回结果。 Elasticsearch支持评分排序,在上面返回结果中,前两条商品信息中同时出现了“春装”和“牛仔裤”,后两条商品信息中只出现了“春装”,所以前两条比后两条与检索关键词的匹配度更高,分数更高,排序也更靠前。