ElasticSearch(Settings,Mappings)

11265 단어 검색 엔진

ElasticSearch(Settings,Mappings)


1. Setting은 인덱스 라이브러리에 대해 인덱스 라이브러리의 분할 수량과 복사본 수량을 설정할 수 있습니다
url 방식 설정 및 수정
"settings": {
        "number_of_shards": 5,
        "number_of_replicas": 1

api 앞에서 색인 라이브러리를 만들 때 말했습니다. 반복하지 않겠습니다.
2. Mappings는 데이터베이스에서 필드에 대한 형식 제약 및 일부 필드를 조회할 때 지정한 분사기에 해당합니다. 홈페이지에 포함된 데이터 형식(text,keyword,date,long,interger...)을 보십시오.
"mappings": {
        "user": {// 
            "properties": {// 
                "title": {
                    "type": "text",// 
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"// 
                },
                "name": {
                    "type": "text"
                },
                "age": {
                    "type": "long"
                }
            }
        },
        "blog": {
            "properties": {
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "content": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                }
            }
        }
    }

apping의 javaApi 만들기
        //  XContentBuilder 
   XContentBuilder builder = XContentFactory.jsonBuilder()
             .startObject()
                .startObject("properties")
                    .startObject("name")
                        .field("type", "text")
                    .endObject()
                    .startObject("title")
                        .field("type", "text")
                        .field("analyzer", "ik_max_word")
                        .field("search_analyzer", "ik_max_word")
                    .endObject()
                .endObject()
             .endObject();
        PutMappingResponse response = client.admin().indices().preparePutMapping()
                .setIndices("dragon").setType("ccc")
                .setSource(builder).get();
        System.out.println(response.isAcknowledged());







// json :  type  setType  
josn :  { "properties": {
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "name": {
                    "type": "text"
                },
                "age": {
                    "type": "long"
                }
            }}

  String json ="{   \"properties\": {
"
+ " \"title\": {
"
+ " \"type\": \"text\",
"
+ " \"analyzer\": \"ik_max_word\",
"
+ " \"search_analyzer\": \"ik_max_word\"
"
+ " },
"
+ " \"name\": {
"
+ " \"type\": \"text\"
"
+ " },
"
+ " \"age\": {
"
+ " \"type\": \"long\"
"
+ " }
"
+ " }}"; byte[] bytes = json.getBytes(); PutMappingResponse response = client.admin().indices() .preparePutMapping("dragon").setType("aaa") .setSource(json, XContentType.JSON).get(); System.out.println(response.isAcknowledged()); }

색인 라이브러리를 만듭니다.
curl -XPUT 'localhost:9200/ ' -d '
{
    "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 1
    },
    "mappings": {
        "user": {
            "properties": {
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "name": {
                    "type": "text"
                },
                "age": {
                    "type": "long"
                }
            }
        },
        "blog": {
            "properties": {
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "content": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                }
            }
        }
    }
}
'  // 

좋은 웹페이지 즐겨찾기