1
ES에서 색인 된 언어에 대해 동의어 검색을 만들려고합니다. 예를 들어 elasticsearch에서 동의어 검색
,인덱스 문서 -> 이름 : 독일어
동의어 : 독일어, 독일어, XYZ
은 내가 만들고 싶어하는 것은, 내가 입력 할 때 중 독일어 또는 독일어 또는 XYZ, ES가 저에게 독일어를 돌려줍니다 ...
그럴 수 있습니까?
ES에서 색인 된 언어에 대해 동의어 검색을 만들려고합니다. 예를 들어 elasticsearch에서 동의어 검색
,인덱스 문서 -> 이름 : 독일어
동의어 : 독일어, 독일어, XYZ
은 내가 만들고 싶어하는 것은, 내가 입력 할 때 중 독일어 또는 독일어 또는 XYZ, ES가 저에게 독일어를 돌려줍니다 ...
그럴 수 있습니까?
예 매우 그렇습니다. ElasticSearch는 동의어를 매우 잘 처리합니다. 여기에 내가 내 클러스터에서 동의어를 구성하는 방법의 예입니다 -
curl -XPOST localhost:9200/**new-index** -d '{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 0,
"analysis": {
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms/synonyms.txt"
}
},
"analyzer": {
"synonym": {
"tokenizer": "lowercase",
"filter": [
"synonym"
]
}
}
}
},
"mappings": {
"**new-type**": {
"_all": {
"enabled": false
},
"properties": {
"Title": {
"type": "multi_field",
"store": "yes",
"fields": {
"Title": {
"type": "string",
"analyzer": "synonym"
}
}
}
}
}
}
}'
동의어 파일의 경로는 동의어 폴더에 대한 설정 폴더 안에 보이는 텍스트 파일을 찾습니다. 귀하의 요구 사항에 대한 synonyms.txt의 내용의 예는 것 -
독일어, 독일어, XYZ
기억을 - 당신이 인덱스 시간에 소문자 필터가있는 경우, 동의어가 될 필요가 소문자. 작동하지 않는 경우 노드를 다시 시작하십시오.
예, 물론 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html – phoet