2017-11-28 10 views
0

모든 속성에 탄성 검색 색인이 있습니까? 나는 탄성 검색 (ES)에 새로운 오전과 내가 어떤 문서의 일부를 생성에 대한 질문이 <a href="http://www.mkyong.com/elasticsearch/elasticsearch-hello-world-example/" rel="nofollow noreferrer">this mykong tutorial</a></p> <p>같은 기본적인 튜토리얼을 통해 갈

/mkyong /로 새 문서를 삽입하려면 동작 예 을 CREATE 게시물/1001 다음과 같은 요청 데이터 :

{ 
     "title": "Java 8 Optional In Depth", 
     "category":"Java", 
     "published_date":"23-FEB-2017", 
     "author":"Rambabu Posa" 
    } 

질문 1 : - ES 즉, 위의 문서의 모든 속성에 역 색인을 생성합니다 title/category/published/author으로 설정하고 전체 텍스트 검색을 제공하거나 명시 적으로 언급해야합니다.

질문 2 : - 위의 예에서 우리는 이미 unique_id 즉 1001을 가지고 있습니다. 이미 DB에 저장하고 ID를 생성하면됩니다. ES 엔진을 통해 ID를 생성해야하고 DB가 필요하지 않은 경우 어떻게해야합니까?

업데이트 : -

Specify which fields are indexed in ElasticSearch

답변

0

질문에서 질문 1에 대한 대답을 얻었다 1 : - 예, ES 두 개의 별도의 유형 두 배 색인 필드를 않습니다 기본적으로. 한 번은 "텍스트"로, 한 번은 "키워드"로 "제목. 키워드"와 같은 하위 필드로 사용하십시오. "텍스트"유형은 언어 분석기를 통해 실행되어 표준 검색 사례를 지원합니다 (중지 단어, 줄 단어 등 제거). "키워드"유형은 변경 사항을 작성하지 않으며 정확한 일치 및 집계를 지원하므로 데이터를 정확히 색인화합니다. 어떤 필드에 대한 맵핑을 명시 적으로 ES에 말할 수 있지만, 그렇지 않은 경우 이것은 디폴트 동작입니다. 자동으로 "_id"라는 필드에있는 모든 문서를 사용하면 인덱스에 대한 자신의 내부 ID를 생성합니다 ES - : https://www.elastic.co/blog/strings-are-dead-long-live-strings

질문 2 : 여기

키워드 행동 대 텍스트에 대한 몇 가지 정보입니다. 기술적으로이를 자신의 ID로 대체 할 수는 있지만 일반적으로 ES의 해싱 알고리즘이 데이터 프리폼을 잘 보급하지 못하게함으로써 성능에 영향을 줄 수 있기 때문에이를 원하지 않습니다. 일반적으로 문서의 새 필드로 원하는 ID를 추가하고 ES에서 사용자를 위해 색인을 생성하도록하는 것이 가장 좋습니다 (이상적으로는 키워드 유형으로).

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-id-field.html

+0

두 개의 추가 질문이 있습니다. 내 주요 질문은 신축성있는 검색이 문서의 모든 열 ('title/category/published/author')에 대한 전체 텍스트 검색을 만들거나 색인을 생성해야하는 문서의 특정 열을 언급해야합니까? 이제 답장으로 돌아갑니다. 'Answer 1 : -' 'text'가 전체 ntext 검색으로 작동하는 sql db의 'like'키워드와 동일한 방식으로 키워드 검색이 작동합니까? – user3198603

+0

'Answer 2 : -' 또한 ES에서 만든 _id를 사용하여 성능에 영향을 줄 수있는 방법을 얻지 못했습니까? 너는 그것을 정교하게 할 수 있니? – user3198603

+0

답변 1 : 그렇습니다. 텍스트 형식은 전체 텍스트 검색을 지원하며 일반적인 SQL DB가 지원하는 것처럼 정확히 일치하는 키워드 유형입니다. – RyanW