2016-12-02 13 views
-1

「quick fox」を検索すると、最初にクイックファースト、ブラウン、の順に一致するすべてのドキュメントに一致するようにしたい場合は、、しかし、それらは離れていても同じ順序であってもよい。したがって、次の文書 "quick nice brown fox"は一致しますが、ドキュメント "nice foxはすばやいです"とは一致しません。Elasticsearch:クエリと同じ順序の用語を持つテキストを見つける

フレーズマッチングでは順序は保持されますが、タームは互いに同じ位置になければならず、スロープを追加しても順序は保持されません。だからどのようにこのタスクを達成するには?

+0

あなたは "%速い%のキツネ%" LIKE WHEREテキストを試してみましたか? – TigOldBitties

答えて

0

slopオプションとin_orderオプションを持つspan_nearクエリが必要です(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 
     } 
    } 
} 
関連する問題