자동 완성 이름을 원합니다. 우리가 이름 John Smith
이있는 경우자동 완성 이름 분석기
예를 들어, 나는 Jo
및 Sm
및 John Sm
이 문서를 다시 얻기 위해 검색 할 수 있어야합니다.
또한 jo sm
이 문서와 일치하지 않기를 바랍니다. 이와
return array(
'settings' => array(
'index' => array(
'analysis' => array(
'analyzer' => array(
'autocomplete' => array(
'tokenizer' => 'autocompleteEngram',
'filter' => array('lowercase', 'whitespace')
)
),
'tokenizer' => array(
'autocompleteEngram' => array(
'type' => 'edgeNGram',
'min_gram' => 1,
'max_gram' => 50
)
)
)
)
)
);
문제는 edgengrams를 사용하여 토큰 화 먼저 우리가 다음 텍스트를 분할한다는 것입니다 :
나는 현재이 분석기가 있습니다.
이이 결과 : 나는 john smith
또는 john sm
에 대해 아무것도 반환되지 것입니다 검색하면 j
jo
joh
john
s
sm
smi
smit
smith
이것은 의미한다.
그래서, 나는 다음과 같이 토큰을 생성 할 필요가 : j
jo
joh
john
s
sm
smi
smit
smith
john s
john sm
john smi
john smit
john smith
.
이러한 추가 토큰을 생성하도록 분석기를 설정하려면 어떻게해야합니까?
가 더 조금 정교한? json 설정을 공유해 주시겠습니까? –
@ GuidoGarcía 내 대답이 업데이트되었습니다 :) – F21