elasticsearch version: 7.10.1
match_phrase 语法
bash
POST <index>/_search
{
"query": {
"match_phrase": {
"<field_name>": {
"query": "<your_search_phrase>",
"slop": <max_distance>,
"analyzer": "<analyzer_name>" (optional)
}
}
}
}
- <your_search_phrase>: 要搜索的确切短语
- 可选参数,表示短语中词语的最大允许间隔数,默认值为0(即词语必须相邻)。
例题
场景
索引创建
bash
PUT /product-reviews
{
"mappings": {
"properties": {
"review": {
"type": "text",
"analyzer": "standard"
}
}
}
}
文档插入
bash
POST /product-reviews/_doc/
{
"review": "This product is really easy to use and very efficient, I highly recommend it."
}
POST /product-reviews/_doc/
{
"review": "This product is easy to use, efficient and has a great design."
}
POST /product-reviews/_doc/
{
"review": "It's not just easy to use but also very energy-efficient, making it a top choice."
}
POST /product-reviews/_doc/
{
"review": "Easy-to-use products are always my favorite, this one is highly efficient as well."
}
POST /product-reviews/_doc/
{
"review": "I was surprised by how user-friendly and efficient this product turned out to be."
}
POST /product-reviews/_doc/
{
"review": "The usability and efficiency of this product exceeded all my expectations."
}
查询语句
bash
POST /product-reviews/_search
{
"query": {
"match_phrase": {
"review": {
"query": "easy to use efficient",
"slop": 1
}
}
}
}