Elasticsearch6.x 변화
6692 단어 전체 텍스트 검색
1string 유형 제거 url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "string"
}
}
}
}
}
아래와 같이 잘못 보고하다.
{
"error": {
"root_cause": [{
"type": "mapper_parsing_exception",
"reason": "No handler for type [string] declared on field [user]"
}],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: No handler for type [string] declared on field [user]",
"caused_by": {
"type": "mapper_parsing_exception",
"reason": "No handler for type [string] declared on field [user]"
}
},
"status": 400
}
해결:string을 텍스트나 키워드로 바꾸기
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
}
}
}
}
}
(1)stringstring 유형은 ElasticSearch 이전 버전에서 많이 사용되며, ElasticSearch 5.x부터string을 지원하지 않습니다.text와 키워드 형식으로 대체합니다.(2)text는 하나의 필드가 전문적으로 검색되어야 한다. 예를 들어 이메일 내용, 제품 설명은 text 형식을 사용해야 한다.텍스트 형식을 설정하면 필드 내용이 분석되고 역렬 인덱스가 생성되기 전에 문자열은 분석기에 의해 단어 항목으로 나뉩니다.텍스트 형식의 필드는 정렬에 사용되지 않으며 집합에 거의 사용되지 않습니다.(3) 키워드 키워드 형식은 인덱스 구조화된 필드, 예를 들어 이메일 주소, 호스트 이름, 상태 코드와 라벨에 적용된다.만약 필드가 필터링이 필요하다면 (예를 들어 발표된 블로그의status 속성이published인 글을 찾는 것), 정렬, 집합을 해야 합니다.키워드 형식의 필드는 정확한 값으로만 검색할 수 있습니다.
2 index 유형은 bool url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
"index": "not_analyzed"
}
}
}
}
}
아래와 같이 잘못 보고하다.
{
"error": {
"root_cause": [{
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: Could not convert [user.index] to boolean"
}],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: Could not convert [user.index] to boolean",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Could not convert [user.index] to boolean",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Failed to parse value [not_analyzed] as only [true] or [false] are allowed."
}
}
},
"status": 400
}
해결: "index": "not_analyzed" 에서 "index":true | false
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
"index": false
}
}
}
}
}
mapping parameters의 index는 bool 값,true 또는false만 받을 수 있습니다
3 사용자 정의 분석기 매개 변수 오류 # POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"token_filters": [
"lowercase"
],
"char_filters": [
"html_strip"
],
"text": "this is a test"
}
아래와 같이 잘못 보고하다.
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
}],
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
},
"status": 400
}
해결:params의 키 이름 수정
# POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"filter": [
"lowercase"
],
"char_filter": [
"html_strip"
],
"text": "this is a test"
}
4누름_all 필드는 데이터를 조회할 수 없습니다 # POST
url: /meta_test/_search/
method: POST
params : {
"query": {
"match": {
"_all": "yan shaowen"
}
}
}
검색 결과를 빈 그룹으로 되돌려줍니다.
{
"took": 264,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
기존 데이터는{
"_index": "meta_test",
"_type": "_doc",
"_id": "e6uod2cBb7ER3WX6wipL",
"_version": 1,
"_score": 1,
"_source": {
"first_name": "yan",
"last_name": "shaowen",
"date_of_birth": "1993-03-14"
}
}
해결x 버전_all은 비활성화되고 사용할 수 없습니다. 테스트 활성화 시간 오류는 다음과 같습니다.
# POST
url: /meta_test/_doc/_mapping/
method: PUT
params : {
"_doc": {
"_all": {
"enabled": true
}
}
}
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
}],
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
},
"status": 400
}
query_ 사용하기string 조회
{
"query": {
"query_string": {
"query": "yan shaowen"
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
algolia: angular-instantsearch v2에서 v3로 업그레이드
V2 문제
v3로 하면 사용할 수 있는 옵션이 늘어나므로 꼭 업그레이드하고 싶다.
예를 들어 현재는 스마트 폰에 대응할 수 없습니다.
실시간 검색이므로 문자 입력하면 순식간에 결과가 돌아오지만, 스마트 폰이라면 이런...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "string"
}
}
}
}
}
{
"error": {
"root_cause": [{
"type": "mapper_parsing_exception",
"reason": "No handler for type [string] declared on field [user]"
}],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: No handler for type [string] declared on field [user]",
"caused_by": {
"type": "mapper_parsing_exception",
"reason": "No handler for type [string] declared on field [user]"
}
},
"status": 400
}
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
}
}
}
}
}
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
"index": "not_analyzed"
}
}
}
}
}
아래와 같이 잘못 보고하다.
{
"error": {
"root_cause": [{
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: Could not convert [user.index] to boolean"
}],
"type": "mapper_parsing_exception",
"reason": "Failed to parse mapping [type1]: Could not convert [user.index] to boolean",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Could not convert [user.index] to boolean",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Failed to parse value [not_analyzed] as only [true] or [false] are allowed."
}
}
},
"status": 400
}
해결: "index": "not_analyzed" 에서 "index":true | false
url: /test1
method: PUT
params : {
"mappings": {
"type1": {
"properties": {
"user": {
"type": "text",
"index": false
}
}
}
}
}
mapping parameters의 index는 bool 값,true 또는false만 받을 수 있습니다
3 사용자 정의 분석기 매개 변수 오류 # POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"token_filters": [
"lowercase"
],
"char_filters": [
"html_strip"
],
"text": "this is a test"
}
아래와 같이 잘못 보고하다.
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
}],
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
},
"status": 400
}
해결:params의 키 이름 수정
# POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"filter": [
"lowercase"
],
"char_filter": [
"html_strip"
],
"text": "this is a test"
}
4누름_all 필드는 데이터를 조회할 수 없습니다 # POST
url: /meta_test/_search/
method: POST
params : {
"query": {
"match": {
"_all": "yan shaowen"
}
}
}
검색 결과를 빈 그룹으로 되돌려줍니다.
{
"took": 264,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
기존 데이터는{
"_index": "meta_test",
"_type": "_doc",
"_id": "e6uod2cBb7ER3WX6wipL",
"_version": 1,
"_score": 1,
"_source": {
"first_name": "yan",
"last_name": "shaowen",
"date_of_birth": "1993-03-14"
}
}
해결x 버전_all은 비활성화되고 사용할 수 없습니다. 테스트 활성화 시간 오류는 다음과 같습니다.
# POST
url: /meta_test/_doc/_mapping/
method: PUT
params : {
"_doc": {
"_all": {
"enabled": true
}
}
}
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
}],
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
},
"status": 400
}
query_ 사용하기string 조회
{
"query": {
"query_string": {
"query": "yan shaowen"
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
algolia: angular-instantsearch v2에서 v3로 업그레이드
V2 문제
v3로 하면 사용할 수 있는 옵션이 늘어나므로 꼭 업그레이드하고 싶다.
예를 들어 현재는 스마트 폰에 대응할 수 없습니다.
실시간 검색이므로 문자 입력하면 순식간에 결과가 돌아오지만, 스마트 폰이라면 이런...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
# POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"token_filters": [
"lowercase"
],
"char_filters": [
"html_strip"
],
"text": "this is a test"
}
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
}],
"type": "illegal_argument_exception",
"reason": "Unknown parameter [token_filters] in request body or parameter is of the wrong type[START_ARRAY] "
},
"status": 400
}
# POST
url: /_analyze/
method: POST
params : {
"tokenizer": "keyword",
"filter": [
"lowercase"
],
"char_filter": [
"html_strip"
],
"text": "this is a test"
}
# POST
url: /meta_test/_search/
method: POST
params : {
"query": {
"match": {
"_all": "yan shaowen"
}
}
}
검색 결과를 빈 그룹으로 되돌려줍니다.
{
"took": 264,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
기존 데이터는
{
"_index": "meta_test",
"_type": "_doc",
"_id": "e6uod2cBb7ER3WX6wipL",
"_version": 1,
"_score": 1,
"_source": {
"first_name": "yan",
"last_name": "shaowen",
"date_of_birth": "1993-03-14"
}
}
해결x 버전_all은 비활성화되고 사용할 수 없습니다. 테스트 활성화 시간 오류는 다음과 같습니다.
# POST
url: /meta_test/_doc/_mapping/
method: PUT
params : {
"_doc": {
"_all": {
"enabled": true
}
}
}
{
"error": {
"root_cause": [{
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
}],
"type": "illegal_argument_exception",
"reason": "Enabling [_all] is disabled in 6.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field."
},
"status": 400
}
query_ 사용하기string 조회
{
"query": {
"query_string": {
"query": "yan shaowen"
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
algolia: angular-instantsearch v2에서 v3로 업그레이드V2 문제 v3로 하면 사용할 수 있는 옵션이 늘어나므로 꼭 업그레이드하고 싶다. 예를 들어 현재는 스마트 폰에 대응할 수 없습니다. 실시간 검색이므로 문자 입력하면 순식간에 결과가 돌아오지만, 스마트 폰이라면 이런...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.