2017-06-11 182 views
0

我需要在我的應用程序中添加搜索欄。搜索將按名和姓搜索。我不知道如何編寫彈性搜索查詢。名字和姓氏是兩個分隔的字段。我在ES中很新。elasticsearch中的多字段搜索查詢

例如: 名:約翰 姓:約書亞

搜索欄串上的結果: 約翰·喬 約翰·喬斯 約翰·喬希 約書亞約翰 約書亞荷蘭Joh ...

回答

-1

使用下一個查詢:

GET /_search { 
    "query": { 
    "query_string" : { 
     "query" : "firstName:jhon 
      AND lastName: Lennon" 
     } 
    } 
    } 
0

您可以使用在您的搜索中查詢Prefix。匹配具有包含具有指定前綴(未分析)的術語的字段的文檔。前綴查詢映射到Lucene Prefix Query。查詢結構如下:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "prefix": { 
         "firstname": "jo" 
        } 
       }, 
       { 
        "match": { 
         "lastname": "jo" 
        } 
       } 
      ] 
     } 
    } 
} 

不要通配符,因爲他們不會有效此搜索中