매핑 및 설정을 구성하여 새 색인을 설정하려고했습니다.탄성 검색 매핑 및 설정 정의
POST /test/text
{
"settings": {
"analysis": {
"filter": {
"greek_stop": {
"type": "stop",
"stopwords": "_greek_"
},
"greek_lowercase": {
"type": "lowercase",
"language": "greek"
},
"greek_stemmer": {
"type": "stemmer",
"language": "greek"
}
},
"analyzer": {
"greek": {
"tokenizer": "standard",
"filter": [
"greek_lowercase",
"greek_stop",
"greek_stemmer"
]
}
}
}
},
"mappings": {
"article": {
"properties": {
"title": {
"type": "string",
"fields": {
"greek": {
"type": "string",
"analyser": "greek"
}
}
},
"content": {
"type": "string",
"fields": {
"greek": {
"type": "string",
"analyser": "greek"
}
}
},
"indexed_date": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
}
}
}
}
}
나는 내가 _id와 ES가 I가있는 대신에 PUT을 사용하여이 변수에 임의의 값을 제공하는 방법에 대해 많은 관심이 없었어요으로 POST를 사용 : 여기
내가 사용하는 코드입니다 그 값을 지정하십시오. 제목과 내용에 대해 두 개의 필드를 만든 이유는 사용자가 입력 한 단어가 정확하게 발견되면 더 높은 가중치를 부여 할 수 있도록 원본 버전의 텍스트와 '줄기 제거 단어'버전을 갖고 싶어하기 때문입니다.GET /test/text/_search
{
"query":{
"multi_match":{
"query":"όμορφος",
"type":"most_fields",
"fields":["content","content.greek","title","title.greek"]}}}
그리고 :
PUT /test/text
{
"title": " ",
"content": " ",
"date": " "
}
나는이 같은 검색 쿼리를 수행 시도 : 그것은 예를 들어, 데이터와 인덱스를 채우는 후
(대신 단어 만 막아야 버전을 저장) 그런 다음 쿼리를 "όμορφη"로 변경하여이 단어들 hav e와 같은 줄기가 붙은 버전은 "όμορφ"이며, 결과적으로 ES의 그리스어 해석기로 인해 나는 같은 항목을 가져야한다.
왜 그런가? 내 문서의 색인을 생성하는 동안 더 많은 작업을 수행해야합니까? 문서를 읽은 후 텍스트의 색인을 생성 할 때 매핑을 정의한 후 자동으로 색인이 생성되고 쿼리가 매번 적절한 분석기를 사용하여 분석 될 것이라는 인상 아래에있었습니다.
내 쿼리가 동일한 결과를 반환하지 않는 이유는 무엇입니까? 어떤 아이디어?
미리 감사드립니다.
POST로 색인을 만들려고 할 때 : { "_index": "test", " _type ":"텍스트 ", "_id ":"AVfDJVLHvgDv319PJqTd " "_version ": 1, "_shards ": { "총 ": 2, "성공 ": 1, 는" "실패 : 0 }, 은 "창조"사실 } 를 반면에 PUT과 내가 얻을 : 없음 핸들러가 URI [/ 테스트/기사] 및 방법 [PUT] 어떤 생각을 왜을 찾을 수 없습니다? /test/text 대신/test를 만들면 다음과 같이 표시됩니다. "type": "mapper_parsing_exception", "이유": "[fields]에 대한 매핑 정의에 지원되지 않는 매개 변수가 있습니다 : [analyzer : 그리스어]" – Swan87
그리스 분석기를 지정하지 않으 난 그냥 수행 할 수 "매핑": { "my_type_name": { "속성": { "제목": { "유형": "텍스트", "분석기" : "영어" } } }} 이 전체 정의를 포함하는 대신? – Swan87
색인을 생성 할 때 반드시 'PUT'과 색인 이름 만 가져야합니다. 문서를 만들 때'POST index/type' 또는'PUT index/type/id'를 가질 수 있습니다. 색인을 삭제하고 위의 제 제안으로 다시 시작하십시오. 내가 돌아 왔을 것을 시도 – Val