제 환경에서는 elastic 5.1.1을 사용하고 있습니다. 필드 이름이 post_hashtags
인 문자열을 배열로 제안 suggester를 선택했습니다. 나는 접두사 "INV"를 다음과 같이 반응을 얻고있다어떻게 완료 suggester 사용할 때 중복없이 고유 한 제안을 얻을 수 있습니까?
필수 :
POST hashtag/_search?pretty&&filter_path=suggest.hash-suggest.options.text,suggest.hash-suggest.options._source
{"_source":["post_hashtags" ],
"suggest": {
"hash-suggest" : {
"prefix" : "inv",
"completion" : {
"field" : "post_hashtags"
}
}
}
응답 : 같은 필드에 대한 입력 문자열도 있기 때문에
다음{
"suggest": {
"hash-suggest": [
{
"options": [
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid"
]
}
},
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid",
"coment_me",
"daya"
]
}
}
]
}
]
}
"무효"두 번 반환 "post_hashtags"다른 문서에서.
동일한 인덱스의 1000 개 문서에 동일한 "잘못된"입력 문자열이있는 경우 문제가 발생합니다. 그러면 엄청난 것이며 필요하지 않은 1000 개의 중복 된 제안이 생깁니다.
형식 완성 필드에 집계를 적용 할 수 있습니까?
중복 된 텍스트 필드 대신 고유 한 제안을 얻을 수있는 방법이 있습니까? 동일한 입력 문자열이 동일한 인덱스의 여러 문서에서 특정 필드에 지정된 경우에도 마찬가지입니까?
이 답변은 도움이 될 수 있습니다 : http://stackoverflow.com/a/41800102/4604579 – Val