2016-08-29 115 views
0

我對ES 1.7.3這種映射:搜索上的嵌套的對象的字段上elasticsearch

{ 
    "customer": { 
     "aliases": {}, 
     "mappings": { 
     "customer": { 
      "properties": { 
       "addresses": { 
        "type": "nested", 
        "include_in_parent": true, 
        "properties": { 
        "address1": { 
         "type": "string" 
        }, 
        "address2": { 
         "type": "string" 
        }, 
        "address3": { 
         "type": "string" 
        }, 
        "country": { 
         "type": "string" 
        }, 
        "latitude": { 
         "type": "double", 
         "index": "not_analyzed" 
        }, 
        "longitude": { 
         "type": "double", 
         "index": "not_analyzed" 
        }, 
        "postcode": { 
         "type": "string" 
        }, 
        "state": { 
         "type": "string" 
        }, 
        "town": { 
         "type": "string" 
        }, 
        "unit": { 
         "type": "string" 
        } 
        } 
       }, 
       "companyNumber": { 
        "type": "string" 
       }, 
       "id": { 
        "type": "string", 
        "index": "not_analyzed" 
       }, 
       "name": { 
        "type": "string" 
       }, 
       "status": { 
        "type": "string" 
       }, 
       "timeCreated": { 
        "type": "date", 
        "format": "dateOptionalTime" 
       }, 
       "timeUpdated": { 
        "type": "date", 
        "format": "dateOptionalTime" 
       } 
      } 
     } 
     }, 
     "settings": { 
     "index": { 
      "refresh_interval": "1s", 
      "number_of_shards": "5", 
      "creation_date": "1472372294516", 
      "store": { 
       "type": "fs" 
      }, 
      "uuid": "RxJdXvPWSXGpKz8pdcF91Q", 
      "version": { 
       "created": "1050299" 
      }, 
      "number_of_replicas": "1" 
     } 
     }, 
     "warmers": {} 
    } 
} 

彈簧應用生成此查詢:

{ 
    "query": { 
     "bool": { 
     "should": { 
      "query_string": { 
       "query": "(addresses.\\*:sample* AND NOT status:ARCHIVED)", 
       "fields": [ 
        "type", 
        "name", 
        "companyNumber", 
        "status", 
        "addresses.unit", 
        "addresses.address1", 
        "addresses.address2", 
        "addresses.address3", 
        "addresses.town", 
        "addresses.state", 
        "addresses.postcode", 
        "addresses.country" 
       ], 
       "default_operator": "or", 
       "analyze_wildcard": true 
      } 
     } 
     } 
    } 
} 

在其上「地址* :sample *「是唯一的輸入。

"query": "(sample* AND NOT status:ARCHIVED)" 

以上代碼的代碼,但搜索客戶對象的所有字段。 因爲我想僅在地址字段進行搜索我用「地址。*」

查詢工作只有在地址對象的字段都是String類型的,之前我加經度緯度領域地址對象上的double類型。現在由於這兩個新字段而出現錯誤。

錯誤:

Parse Failure [Failed to parse source [{ 
    "query": { 
    "bool": { 
     "should": { 
      "query_string": { 
       "query": "(addresses.\\*:sample* AND NOT status:ARCHIVED)", 
        "fields": [ 
         "type", 
         "name", 
         "companyNumber","country", 
         "state", 
         "status", 
         "addresses.unit", 
         "addresses.address1", 
         "addresses.address2", 
         "addresses.address3", 
         "addresses.town", 
         "addresses.state", 
         "addresses.postcode", 
         "addresses.country", 
        ], 
        "default_operator": "or", 
        "analyze_wildcard": true 
       } 
      } 
     } 
    } 
    } 
]] 

NumberFormatException[For input string: "sample" 

有沒有一種方法來搜索使用地址嵌套對象中「字符串」字段*只?

回答

相關問題