2016-09-16 6 views
0

일반적으로 볼 수있는 것과 반대로 ElasticSearch를 사용합니다. 우리는 보통 "소프트웨어 공학", "자동차 기술", "건축가"와 같은 작업 제목과 같이 일반적으로 1 또는 2 단어의 작은 문서를 많이 저장합니다.ElasticSearch : 결과 대신 쿼리에서 단어를 강조 표시 할 수 있습니까?

그런 다음 더 긴 문자열, 예를 들어 a 1000 단어 작업 스펙. 이 방법으로 우리는 모든 작업 제목을 작업 스펙의 텍스트에 표시합니다.

잘 작동합니다. 하지만 ElasticSearch에 작업 스펙에서 일치하는 작업 제목을 강조 표시 할 수 있는지, 즉 쿼리에서 결과를 강조 표시 할 수 있는지 궁금합니다. highlight 키워드를 사용해 보았지만 쿼리 텍스트를 강조 표시하지 않고 결과를 강조 표시합니다. ElasticSearch 응답에서 쿼리를 반환하는 방법을 잘 모르겠습니다. 강조 표시 할 수 있는지 여부는 말할 것도 없습니다.

ElasticSearch를 사용하여 쿼리를 강조해야하는 이유가 궁금 할 수 있습니다. 텍스트의 모든 결과를 선택하여 직접 강조 표시 할 수는 없습니까? 예, 할 수는 있지만, 형태소 분석 및 초지 단어 제거와 같이 어렵게 만드는 여러 가지 사항이 있습니다. 예를 들어 "jquery"는 ElasticSearch에서 토큰 화를 수행 할 때 "jqueri"로 줄기가 붙어 결과적으로 발견되지만, 강조 표시를 원한다면 원본 텍스트와 일치하도록 그것을 보관해야합니다. Elasticsearch도 기호를 제거하므로 terms & conditionsterms conditions이 될 것이므로 "&"기호를 다시 추가해야하므로 수동으로 강조 표시하려면 문제가됩니다. 100 가지의 다른 문제가 있으므로 ElasticSearch가 나를 대신 할 수 있는지 여부에 대한 질문이 있습니다.

+0

우수 질문. 지금 당장 작업하십시오 - 분석 작업을 통해 탄성 검색에서 볼 수있는 정확한 토큰을 얻을 수 있지만 응용 프로그램 계층을 사용하여 자신에게 매핑을 수행해야합니다. 쿼리의 복잡성에 따라 상당히 어려울 수 있습니다. – ProfileTwist

답변

1

나는 쿼리 문자열을 강조 표시하는 것이 불가능합니다 - 인덱스의 문서 부분 만 강조 표시합니다.

시도해보십시오. 은 자신의 색인에 쿼리 문자열을 인덱싱 한 다음 쿼리 문자열 (두 번째 인덱스)에 대한 두 번째 쿼리의 쿼리 용어로 첫 번째 쿼리의 결과를 사용합니다. 그런 다음 쿼리 문자열을 강조 표시 할 수 있습니다. 매번 ES에 추가 요청을해야 할 것입니다.하지만 원하는대로 얻을 수있을 것이라고 생각합니다.

+0

좋은 생각, 고마워. – Tom

관련 문제