2014-11-17 3 views
0

elasticsearch에서 을 사용하여 일부 데이터를 검색하려면 어떻게합니까? 은 내가비슷한 검색 기능을 사용하여 elasticsearch 쿼리를 검색하십시오.

http://****/billing_master/_search?q=CUST_NAME:Komplek* 

나는 결과가 될하고자하는 시도

LIKE 기능을 SQL을 유사한 검색하고 싶은 같은 :

{ 
    "_index": "billing_master", 
    "_type": "90000019", 
    "_id": "C20110325000809_371", 
    "_score": 1, 
    "_source": { 
    "ALAMAT": "Komplek Ruko Jl. By pass Ngurah Rai No.257 Suwung Kangin Denpasar Selatan", 
    "CUST_NAME": "PT. Sobek Bali Utama (Cp. I Made Antara)", 
    "ANI": "082897030385", 
    "CUST_ID": "C20110325000809_371", 
    "SCGROUP": 39, 
    "EMAIL": "[email protected],[email protected],[email protected]", 
    "BILLING_ID": "90000019", 
    "SOFTORHARD": "03", 
    "HCGROUP": 39 
    } 
} 

하지만 실제 결과는

{ 
    "took": 3, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 0, 
    "max_score": null, 
    "hits": [] 
    } 
} 

답변

0
입니다

데이터 모델을 모르지만 2 가지 해결책을 제안합니다. f 또는이 경우 :

솔루션 1 - URI를에 대한 중첩 된 형식을 만듭니다 :

{ 
    "nesttype" : { 
     "properties" : { 
      "uri" : { 
       "type" : "nested" , 
       "properties" : { 
        "host"  : { "type" : "string" }, 
        "relativePath"  : { "type" : "string" }, 
        "params" : { "type" : "string" }, 
        "paramValues" : { "type" : "string" } 
       } 
      } 
     } 
    } 
} 

을이 중첩 된 형태로, 당신은 중첩 된 쿼리를 생성하고 필드를 검색 할 수 있습니다 : "호스트" "와 같은 **** ","relativePath "를"billing_master/_search "및"paraValues ​​"를"CUST_NAME : Komplek "으로 지정하십시오.

해결 방법 2 - 만들기을 분석하지 않은 문자열 필드 :

{ 
    "test" : { 
     "properties" : { 
      "uri" : { 
       "type" : "string" , 
       "index" : "not_analyzed" 
      } 
     } 
    } 
} 

필드의이 유형은, URI는 토큰으로 분리되지 않습니다. 따라서 와일드 카드 쿼리를 사용할 수 있습니다.

자세한 내용은 분석 필드, 중첩 필드 및 중첩 된 쿼리를 참조하십시오.

관련 문제