-1
假設我搜索「quick fox」,我希望這個查詢匹配所有文檔先匹配,然後布朗,不一定一個接一個,但它們可以相距任意距離,但順序相同。因此,下面的文件「快速漂亮的棕色狐狸」將匹配,但文件「很快狐狸」,將不匹配。Elasticsearch:找到與查詢具有相同順序的詞的文本
短語匹配保留了順序但限制性太強,因此術語必須位於相對於彼此的相同位置,並且添加斜率不會保留順序。那麼如何完成這個任務?
假設我搜索「quick fox」,我希望這個查詢匹配所有文檔先匹配,然後布朗,不一定一個接一個,但它們可以相距任意距離,但順序相同。因此,下面的文件「快速漂亮的棕色狐狸」將匹配,但文件「很快狐狸」,將不匹配。Elasticsearch:找到與查詢具有相同順序的詞的文本
短語匹配保留了順序但限制性太強,因此術語必須位於相對於彼此的相同位置,並且添加斜率不會保留順序。那麼如何完成這個任務?
您需要span_near
具有slop
選項的查詢以及in_order
選項:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/query-dsl-span-near-query.html。從文檔
樣品查詢:
GET /_search
{
"query": {
"span_near" : {
"clauses" : [
{ "span_term" : { "field" : "value1" } },
{ "span_term" : { "field" : "value2" } },
{ "span_term" : { "field" : "value3" } }
],
"slop" : 12,
"in_order" : false
}
}
}
你嘗試WHERE文本LIKE 「%快速%狐狸%」? – TigOldBitties