match、match_phrase、query_string
POST /lagou-company-index/_search
{
"query":{
"match_all": {}
}
}
# or關系
# match 類型查詢,會把查詢條件進行分詞,然后進行查詢,多個詞條之間是or的關系
POST /lagou-property/_search
{
"query":{
"match":{
"title":"小米電視4A"
}
}
}
# and關系
# 某些情況下,我們需要更精確查找,我們希望這個關系變成 and ,可以這樣做:
POST /lagou-property/_search
{"query":
{"match": {
"title":
{"query": "小米電視4A","operator": "and"}
}
}
}
短語搜索(match phrase query)
match_phrase是分詞的,text也是分詞的。match_phrase的分詞結果必須在text字段分詞中都包含,而且順序必須
相同,而且必須都是連續的
GET /lagou-property/_search
{
"query": {
"match_phrase": {
"title": "小米電視"
}
}
}
query_string 查詢
該查詢與match類似,但是match需要指定字段名,query_string是在所有字段中搜索,范圍更廣泛。
# 默認 和 指定字段
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query" : "2699"
}
}
}
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query" : "2699",
"default_field" : "title"
}
}
}
# 邏輯查詢
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query" : "手機 OR 小米",
"default_field" : "title"
}
}
}
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query" : "手機 AND 小米",
"default_field" : "title"
}
}
}
# 模糊查詢
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query" : "大米~1",
"default_field" : "title"
}
}
}
# 多字段支持
GET /lagou-property/_search
{
"query": {
"query_string" : {
"query":"2699",
"fields": [ "title","price"]
}
}
}
多字段匹配搜索(multi match query)
如果你需要在多個字段上進行文本搜索,可用multi_match 。multi_match在 match的基礎上支持對多個字段進行文
本查詢
GET /lagou-property/_search
{
"query": {
"multi_match" : {
"query":"小米4A",
"fields": [ "title","images"]
}
}
}
