12.3.19 fields - elasticsearch 중국어 문서

6044 단어 Elasticsearch

12.3.19 fields


fields


그것은 종종 색인이 다른 목적과 다른 방식의 같은 영역에 사용된다.이것은 멀티필드 다중 필드의 목적이다.예를 들어 문자열 필드는 전체 텍스트 검색을 위한 단어 필드로 사용할 수도 있고, 단어 필드 없이 검색하거나 집합할 수도 있다.
PUT /my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "city": {
          "type": "string",
          "fields": {
            "raw": {   # 1:city.raw city 
              "type":  "string",
              "index": "not_analyzed"
            }
          }
        }
      }
    }
  }
}

PUT /my_index/my_type/1
{
  "city": "New York" 
}

PUT /my_index/my_type/2
{
  "city": "York"   # 2: city 
}

GET /my_index/_search
{
  "query": {
    "match": {
      "city": "york" 
    }
  },
  "sort": {
    "city.raw": "asc"    # 3:city.raw 
  },
  "aggs": {
    "Cities": {
      "terms": {
        "field": "city.raw"   # 4:city.raw 
      }
    }
  }
}

[참고] Multi-fields는 변경되지 않습니다_source 필드.[힌트] fields 설정은 같은 색인에 있는 같은 이름의 필드에 다른 설정을 허용합니다.새로운 멀티필드는 이미 존재하는 필드에 [PUT mapping API](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html) 추가할 수 있습니다

다분사기를 사용한 다중 필드(Multi-fields)


또 다른 다중 필드(multi-fields)의 그림은 단어가 같은 필드를 서로 다른 방식으로 나누어 더욱 잘 관련시키기 위한 것이다.예를 들어 우리는 한 필드를 색인해서 표준 분사기로 단어를 나눌 수도 있고, 영어 분사기로 그것들을 어근 형식으로 만들 수도 있다
PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "text": {  # 1``text`` 
          "type": "string",
          "fields": {
            "english": {   # 2::``text.english`` ``english`` 
              "type":     "string",
              "analyzer": "english"
            }
          }
        }
      }
    }
  }
}

PUT my_index/my_type/1
{ "text": "quick brown fox" }   # 3: , ``fox`` ``foxes``

PUT my_index/my_type/2
{ "text": "quick brown foxes" }  # 43

GET my_index/_search
{
  "query": {
    "multi_match": {
      "query": "quick brown foxes",
      "fields": [   # 5``text`` ``text.english`` 
        "text",
        "text.english"
      ],
      "type": "most_fields"   # 65
    }
  }
}
text 필드에는 단어fox가 첫 번째 문서에 포함되고 두 번째 문서foxes가 포함되어 있습니다.text.english 필드는 fox 두 문서에 포함되어 있습니다. foxes 의 어간 (is stemmed to) 은 fox 이기 때문입니다.
검색 문자열도 text 필드의 표준 분사기에 의해 분사되고, text.english 필드의 영어 분사기에 의해 분사될 수 있다.어간화 필드는 foxes 의 조회도 fox 만 포함된 문서와 일치할 수 있도록 합니다.이것은 우리가 가능한 한 많은 문서와 일치할 수 있도록 허용한다.미어간화text 필드도 조회하여 정확하게 일치하는 문서에 대한 점수를 제공합니다.

좋은 웹페이지 즐겨찾기