Elasticsearch의 우수한 색인 설정 기술

52415 단어 Elasticsearch
아래의 색인 설정은 외국의 우수한 사진 검색 회사에서 얻은 것으로 색인을 설정하는 디자인에서 색인 디자인 기교를 향상시키는 방법을 얻을 수 있다.
{
  "500px.photos-2016-05-06-20-09": {
    "aliases": {
      "500px.photos": {}
    },
    "mappings": {
      "photo": {
        "_all": {
          "enabled": false },
        "_routing": {
          "required": true,
          "path": "user_id" },
        "properties": {
          "camera": { "type": "string", "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "category": { "type": "integer" },
          "collections_count": { "type": "long" },
          "comments_count": { "type": "integer" },
          "context_tags": { "type": "nested", "properties": { "context": { "type": "string", "index": "not_analyzed" }, "id": { "type": "integer" }, "name": { "type": "string", "fields": { "exact": { "type": "string", "analyzer": "exact" }, "exact_stemmed_synonyms": { "type": "string", "index_analyzer": "exact_stemmed_synonyms", "search_analyzer": "exact_stemmed_synonyms_search" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" }, "stemmed": { "type": "string", "analyzer": "stemmed" }, "stemmed_synonyms": { "type": "string", "index_analyzer": "stemmed_synonyms", "search_analyzer": "stemmed_synonyms_search" } } }, "name_de": { "type": "string", "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" }, "stemmed": { "type": "string", "analyzer": "stemmed_de" } } }, "weight": { "type": "float" }, "weight_new": { "type": "float" } } },
          "context_tags_tags_count": { "type": "integer" },
          "converted": { "type": "integer" },
          "created_at": { "type": "date", "format": "dateOptionalTime" },
          "delivery_type_current": { "type": "nested", "properties": { "delivery_type": { "type": "string", "index": "not_analyzed" }, "enabled": { "type": "boolean" } } },
          "description": { "type": "string", "boost": 5, "fields": { "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" }, "stemmed": { "type": "string", "analyzer": "stemmed" }, "stemmed_synonyms": { "type": "string", "index_analyzer": "stemmed_synonyms", "search_analyzer": "stemmed_synonyms_search" } } },
          "favorites_count": { "type": "integer" },
          "feature": { "type": "nested", "properties": { "end_at": { "type": "date", "format": "dateOptionalTime" }, "name": { "type": "string", "index": "not_analyzed" }, "start_at": { "type": "date", "format": "dateOptionalTime" } } },
          "for_sale": { "type": "boolean" },
          "galleries": { "type": "nested", "properties": { "id": { "type": "long" }, "position": { "type": "long" } } },
          "geo_coordinates": { "type": "geo_point", "lat_lon": true },
          "height": { "type": "integer" },
          "hi_res_uploaded": { "type": "integer" },
          "highest_rating": { "type": "float" },
          "id": { "type": "integer" },
          "image_format": { "type": "integer" },
          "lens": { "type": "string", "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "license_requests_enabled": { "type": "boolean" },
          "license_type": { "type": "integer" },
          "licensed_at": { "type": "date", "format": "dateOptionalTime" },
          "licensing_status": { "type": "integer" },
          "licensing_status_organizer_index": { "type": "integer" },
          "name": { "type": "string", "fields": { "exact": { "type": "string", "analyzer": "exact" }, "exact_stemmed_synonyms": { "type": "string", "index_analyzer": "exact_stemmed_synonyms", "search_analyzer": "exact_stemmed_synonyms_search" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" }, "stemmed": { "type": "string", "analyzer": "stemmed" }, "stemmed_synonyms": { "type": "string", "index_analyzer": "stemmed_synonyms", "search_analyzer": "stemmed_synonyms_search" } } },
          "nsfw": { "type": "boolean" },
          "photo_sets": { "type": "nested", "properties": { "id": { "type": "long" }, "position": { "type": "long" } } },
          "privacy": { "type": "integer" },
          "rating": { "type": "float" },
          "sales_count": { "type": "integer" },
          "status": { "type": "integer" },
          "taken_at": { "type": "date", "format": "dateOptionalTime" },
          "times_viewed": { "type": "integer" },
          "updated_at": { "type": "date", "format": "dateOptionalTime" },
          "user_firstname": { "type": "string", "boost": 4, "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "user_id": { "type": "long" },
          "user_lastname": { "type": "string", "boost": 4, "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "user_name": { "type": "string", "boost": 4, "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "user_partner_optout": { "type": "boolean" },
          "user_status": { "type": "integer" },
          "user_store_on": { "type": "boolean" },
          "user_username": { "type": "string", "boost": 4, "fields": { "exact": { "type": "string", "analyzer": "exact" }, "not_analyzed": { "type": "string", "index": "not_analyzed" }, "prefix": { "type": "string", "index_analyzer": "prefix", "search_analyzer": "prefix_search" } } },
          "votes_count": { "type": "integer" },
          "width": { "type": "integer" } }
      }
    },
    "settings": {
      "index": {
        "creation_date": "1462579747496",
        "uuid": "V9kxOgQPR82FXpj-UN_Rdw",
        "analysis": {
          "char_filter": { "amp_and": { "type": "mapping", "mappings": [ "&=> and " ] }, "punctuation": { "type": "mapping", "mappings": [ ".=> " ] } },
          "filter": { "preserved_asciifolding": { "type": "asciifolding", "preserve_original": "true" }, "large_prefixer": { "max_gram": "100", "min_gram": "1", "type": "edgeNGram", "side": "front" }, "prefixer": { "max_gram": "8", "type": "edgeNGram", "min_gram": "2", "side": "front" }, "german_stemmer": { "type": "stemmer", "language": "light_german" }, "german_stop": { "type": "stop", "stopwords": "_german_" }, "fivegrammer": { "min_gram": "5", "type": "nGram", "max_gram": "5" }, "synonyms": { "type": "synonym", "synonyms_path": "analysis/wn_s.pl", "format": "wordnet" }, "trigrammer": { "type": "nGram", "min_gram": "3", "max_gram": "3" }, "custom_stems": { "type": "stemmer_override", "rules_path": "analysis/custom_stems.txt" } },
          "analyzer": { "exact_stemmed_synonyms": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "asciifolding", "lowercase", "trim", "custom_stems", "kstem", "synonyms", "custom_stems", "stop" ], "tokenizer": "keyword" }, "stemmed": { "filter": [ "standard", "lowercase", "custom_stems", "stop", "kstem" ], "tokenizer": "standard" }, "exact_stemmed_synonyms_search": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "standard", "asciifolding", "lowercase", "trim", "custom_stems", "stop", "kstem" ], "tokenizer": "standard" }, "synonyms": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "standard", "lowercase", "synonyms" ], "tokenizer": "standard" }, "partial": { "filter": [ "preserved_asciifolding", "large_prefixer" ], "tokenizer": "lowercase" }, "prefix_search": { "tokenizer": "lowercase" }, "stemmed_synonyms": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "standard", "asciifolding", "lowercase", "trim", "custom_stems", "kstem", "synonyms", "custom_stems", "stop" ], "tokenizer": "standard" }, "fivegram_ascii": { "filter": [ "standard", "asciifolding", "lowercase", "trim", "fivegrammer" ], "tokenizer": "standard" }, "prefix": { "filter": [ "preserved_asciifolding", "prefixer" ], "tokenizer": "lowercase" }, "exact": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "asciifolding", "lowercase", "trim" ], "tokenizer": "keyword" }, "stemmed_synonyms_search": { "type": "custom", "char_filter": [ "amp_and" ], "filter": [ "standard", "asciifolding", "lowercase", "trim", "custom_stems", "stop", "kstem" ], "tokenizer": "standard" }, "trigram": { "filter": [ "lowercase", "trim", "trigrammer" ], "tokenizer": "keyword" }, "stemmed_de": { "filter": [ "standard", "asciifolding", "lowercase", "german_stop", "german_normalization", "german_stemmer" ], "tokenizer": "standard" }, "partial_search": { "tokenizer": "lowercase" } } },
        "number_of_replicas": "2",
        "number_of_shards": "20",
        "refresh_interval": "1",
        "version": {
          "created": "1040499" }
      }
    },
    "warmers": {}
  }
}
  • 500px.photos-2016-05-06-20-09는 구체적인 날짜를 통해 색인 이름을 명명하고 특정한 색인 수정 날짜를 기록합니다
  • 수정된 모든 인덱스는 별칭을 설정합니다. 500px.photos
  • 매개변수 "_all": {
  • “enabled”: false
  • } 전체 시스템이 인덱스 단계에서 CPU와 저장 공간 자원에 대한 지출을 효과적으로 막습니다
  • 설정_routing, 모두 user_id는 루트 경로로 모든 사용자의 그림을 같은shard에 저장할 수 있으며 사용자의 개인 사진 관련 검색을 하면 검색 효율을 높일 수 있다
  • camera에 대한 조회를 위해 세 가지 다른 analyzer를 설치했다. 1.exact 2.not_analyzed 3.prefix, 각각 정확한 검색, 접두사 검사
  • 그림의 질의 좋고 나쁨을 판단할 수 있는 여러 개의 계수를 설정합니다. 예를 들어collections_count,comments_count,favorites_count,context_tags_tags_count,sales_count,votes_count
  • context_tags는 가장 정교한 곳입니다. 상세한 것은 다른 문서에서 참고하십시오. 참고 주소:
  • context_tags_tags_count는 단독으로 이 계수를 설정하여 어떤 그림의 무게를 참조한다. 키워드가 많을수록 내용이 풍부해지고 상대적으로 모든 키워드의 무게가 낮아야 한다는 것을 설명한다.
  • converted, 사진이 편집된 횟수, 그 목적을 잠시 알 수 없다. 어떤 사진이 편집된 횟수가 많을수록 이 사진의 질은 상대적으로 높을 것으로 추정된다. 좋은 사진만 있고 사진작가가 그에 대해 신경을 쓴다(내용 수정)
  • 좋은 웹페이지 즐겨찾기