2017-10-01 3 views
1

나는이처럼 standard analyzer와 키워드의 목록을 저장하는 elasticsearch을 사용하고 있습니다 :알파벳 순서로 키워드의 색인 생성 목록은 탄력성 검색에서 전혀 정렬하지 않습니까?

{ 
    id:1, 
    body_color:'silver,blue', 
    feature:'wifi,gps' 
}, 
{ 
    id:2, 
    body_color:'blue,red', 
    window_color:'yellow,white', 
    feature:'multi core,wifi' 
} 

알파벳 순서대로 목록, 예를 들면)

{ 
    id:1, 
    body_color:'blue,silver', 
    feature:'gps,wifi' 
}, 
{ 
    id:2, 
    body_color:'blue,red', 
    window_color:'white,yellow', 
    feature:'multi core,wifi' 
} 

때문에 더 작은 인덱스 크기를 필요로 정렬합니까 더 표준적이고 더 적은 변이? 토큰을 정규화하는 데 도움이됩니까?

답변

1

첫 번째는 키워드가 아니라 텍스트라고 말했습니다. 그런 다음 유형 텍스트 대신 유형 keyword을 사용해야하며 키워드는 분석되지 않습니다. 정렬에 관한 질문 들어

{ 
    id:1, 
    body_color:'silver,blue', 
    feature:['wifi','gps'] 
}, 
{ 
    id:2, 
    body_color:'blue,red', 
    window_color:['yellow','white'], 
    feature:'multi core,wifi' 
} 

:

문서가 다음과 같이한다. elasticsearch는 문자열을 분석 할 때 그는 다음과 같은 적용된다

  1. 문자 필터
  2. 토큰 화를
  3. 문자 필터를 사용하면 HTML과 같은 색인을 원하지 않는 문자를 제거합니다

  • 토큰 필터 태그를 예로들 수 있습니다. 이 후 나머지 토큰에 토큰 화가가 적용되어 문자열을 토큰 목록으로 나눕니다. 마지막 단계 인 토큰 필터는 목록에서 특정 토큰을 제거하고 예를 들어 단어를 중지하면 모든 토큰이 역 색인에 추가되어 검색 가능하게됩니다.

    귀하의 키워드를 정렬하면 색인 생성의 효율성이 향상 될 것이라고 생각하지 않습니다.