edgengram 쿼리가 제대로 작동하는 데 문제가 있습니다. 나는 적어도 2 개의 edgengram을 가진 "푸른 잔디"라는 기록을 가지고있다. 그러나 "blv"의 질의 문자열은 "푸른 잔디"를 반환하지만, 그렇지 않아야한다.쿼리 문자열 반환 결과가 edgeNGram에 없습니다.
curl -X POST http://localhost:9200/test -d '{
"mappings": {
"product/fragrance": {
"properties": {
"name_query": {
"index_analyzer": "query_index_analyzer",
"search_anaylzer": "query_search_analyzer",
"as": {},
"type": "string"
}
}
}
},
"settings": {
"analysis": {
"filter": {
"query_edgengram": {
"type": "edgeNGram",
"min_gram": 2,
"max_gram": 20,
"side": "front"
}
},
"analyzer": {
"query_index_analyzer": {
"tokenizer": "lowercase",
"filter": ["asciifolding", "query_edgengram"]
},
"query_search_analyzer": {
"tokenizer": "lowercase",
"filter": ["asciifolding"]
}
}
}
}
}'
curl -X POST "http://localhost:9200/test/product%2Ffragrance/1" -d '{
"name_query": "blue grass"
}'
curl -X GET "http://localhost:9200/test/product%2Ffragrance/_search?load=true&pretty=true" -d '{
"query": {
"bool": {
"must": [{
"query_string": {
"query": "blv",
"fields": ["name_query"],
"default_operator": "OR"
}
}]
}
}
}'
나는 그 결과를 얻습니다. 왜 그 이유를 설명 할 수 있습니까? 감사. 내가 원하는 것은 "bl"은 "푸른 잔디"를 돌려 보내면 안된다는 것입니다. 나는 분석 API를 사용하여 "푸른 잔디"가 "bl", "블루", "블루", "gr", "gra", "gras", "grass"로 분류되었지만 "blv" 그 중 어느 것과도 일치하지 않습니다.
오, 이런, 얼마나 당황 스럽습니까. 고마워요/블러쉬 – axsuul