다음은 색인 설정입니다. 필드 동의어에 대한 xyz 유형의 인덱스에 대해 싱글 필터를 사용하고 있습니다.
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer_keyword": {
"type": "custom",
"tokenizer": "keyword",
"filter": [
"asciifolding",
"lowercase"
]
},
"my_analyzer_shingle": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"asciifolding",
"lowercase",
"shingle"
]
}
}
}
}
},
abc: {
"abc": {
"properties": {
"value": {
"type": "string",
"search_analyzer": "my_analyzer_keyword",
"analyzer": "my_analyzer_keyword"
}
}
}
},
xyz: {
"xyz": {
"properties": {
"synonym": {
"type": "string",
"search_analyzer": "my_analyzer_shingle",
"analyzer": "my_analyzer_keyword"
}
}
}
}
단어가 30 개 이상일 수없는 입력 텍스트가 있습니다. 내 요구 사항은 제공하는 특정 입력 텍스트에서 xyz 유형의 모든 동의어 필드를 가져 오는 것입니다. 그래서 다음 쿼리를 사용하지만 그것은 BooleanQuery $ TooManyClauses 예외를 던지고있다.
{
"query": {
"match": {
"synonym": {
"query": "abas asas asas qwqw ererer asas asas kjjkkj hhha asas nnn jhhha kkka nnna asas qwqw asas qwqw sdsd qwqw erer rtrtr fgfg asas nnn jhhha kkka nnna asas qwqw asas qwqw sdsd qwqw erer rtrtr fgfg "
}
}
}
}
또한이 입력 텍스트에서 한 글자 동의어와 두 글자 동의어를 모두 식별해야합니다. 나는 또한 indices.query.bool.max_clause_count 4096을 늘려 보았습니다. 여전히 그 던지는 오류가 발생했습니다.