2014-08-31 72 views
1

elasticsearch可能在單個查詢中獲取包含短語1或短語2的所有文檔嗎?當有多個短語和目標是檢索包含這兩種短語的文件Elasticsearch或短語之間的操作

"query" : { 
     "match_phrase" : { 
      "title" : "rock climbing" 
     } 
    } 

但如何對一個案例: 我知道匹配短語,可以使用下面的查詢。

回答

2

你可以用兩個match_phrase查詢should子句bool query在:

{ 
    "query" : { 
    "bool": { 
     "should": [ 
     { 
      "match_phrase" : { 
      "title" : "phrase1" 
      } 
     }, 
     { 
      "match_phrase": { 
      "title": "phrase2" 
      } 
     } 
     ], 
     "minimum_number_should_match": 1 
    } 
    } 
} 
1

您可以執行Query String搜索

{ 
    "query_string" : { 
     "default_field" : "content", 
     "query" : "this AND that OR thus" 
    } 
} 

可以在查詢或使用指定AND/OR子句default_operator,只需將關鍵字寫入query參數即可。如果你想要精確的phare,只需將單詞換成引號即可。

+0

這取決於字段「標題」在索引中的映射方式。如果您的Tokenizer(鏈接在下方)設置爲「空格」,則可以單獨搜索這兩個詞,並且此答案將返回所需的結果。 http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/standard-tokenizer.html – Gillespie 2014-09-01 10:07:42