2016-09-15 4 views
0

약간의 문제가 있습니다. 컬트 스크립트로 테스트 할 때 Elasticsearch로 작업하기 시작했으며이 문제가 있습니다.단어 시작 부분에 Elasticsearch multi_match가 있습니다.

curl -XGET 'localhost:9200/fcomputer/products/_search?pretty' -d' 
{ 
    "query" : { 
     "multi_match" : { 
      "query" : "sams evo", 
"fields": ["title", "fulltext"] 
     } 
    } 
}' 

샘 검색과 에보가 포함 된 모든 항목을 검색 한 후에 시도하고 대소 문자를 구분하지 않습니다.

이제는 입력 할 때 제대로 된 단어처럼 보이고 sams와 evo에는 "or"를 사용합니다.

는 쿼리에 말을 거기 쉬운 방법 :

  1. 검색 분야 : 제목과 전체 텍스트

  2. 당신은 필드 경기 두 단어 (SAMS & EVO) 경기에서 뭔가를해야만 찾을 경우 (시작) 또는 (100 % 일치)

  3. 검색에서 모든 유효한 데이터를 반환합니다. 솔리드 스테이트 드라이브 - - 2백56기가바이트 - PCI 익스프레스 3.0 X4 (의 NVMe

    • 삼성 950 PRO MZ-V5P256BW :

나는이 제목에 일치하는 항목을 찾기 위해 노력 해왔다

ASUS GTX950-2G grafikkort - GF의 GTX 950 - 2g을

  • ASUS GTX950-OC-2GD5 grafikkort - GF의 GTX 950-2 GB

  • 01,235,
  • 얼룩말 Z- 얼티 메이트 5A - 영구 얼룩진 빈 폴리 에스테르 테이프 - 950 stk.

  • 쿄 세라 TK (950) - 종류 - 원본 - 내가 검색어 "삼성 950"을 사용하지만이 작동하지 않는 경우 여기를 유일한 경기가 될 종료

  • (삼성 950 PRO) tonerpatron.

    답변

    1

    { 
        "settings": { 
         "analysis": { 
          "filter": { 
           "autocomplete_filter": { 
            "type":  "edge_ngram", 
            "min_gram": 1, 
            "max_gram": 20 
           } 
          }, 
          "analyzer": { 
           "autocomplete": { 
            "type":  "custom", 
            "tokenizer": "standard", 
            "filter": [ 
             "lowercase", 
             "autocomplete_filter" 
            ] 
           } 
          } 
         } 
        } 
    } 
    

    및 매핑 설정이

    { 
        "query": { 
        "multi_match": { 
         "query": "sam evo", 
         "type": "cross_fields", 
         "operator": "and", 
         "fields": [ 
         "title", 
         "fulltext" 
         ] 
        } 
        } 
    } 
    

    사용을 시도

    { 
        "properties": { 
        "title": { 
         "type": "string", 
         "analyzer": "autocomplete", 
         "search_analyzer": "standard" 
        }, 
        "fulltext": { 
         "type": "string", 
         "analyzer": "autocomplete", 
         "search_analyzer": "standard" 
        } 
        } 
    } 
    
    +0

    는 여전히 같은 단어의 begning에서 검색되지 "삼성 750 EVO"하지 않습니다 이 쿼리로 찾을 수 있습니다. – ParisNakitaKejser

    +0

    설정 및 매핑을 사용해보십시오. – blackmamba

    +0

    컬을 만들 수 있습니까?무슨 의미인지 알 수 있지만 그것을 사용하는 방법을 이해하지 못한다면, 나는 지금 Elasticsearch에 대해 매우 익숙하다. – ParisNakitaKejser

    관련 문제