2017-09-14 5 views
0

안녕하세요 저는 백엔드 데이터베이스가있는 장고 프로젝트를 PostgreSQL 서버로 작업하고 있습니다. 내 프로젝트의 검색 엔진으로 elastic search을 선택했습니다.db 콘텐츠를 탄성 검색으로 인덱싱

elastic search doc 유형 간의 매핑을 생성하기 위해 elastic search-dsl-py을 사용했습니다. Django signals을 사용하여 updatedelete 이벤트를 캡처하십시오.

그런데 Django 모델의 모든 필드를 탄성 검색으로 매핑하지 않았습니다.

사용자가 신축성있는 검색 서버에서 홈페이지로 항목 목록을 가져올 때. 사용자가 항목 목록을 클릭하면 elastic_search server 또는 Postgres server

모든 항목의 세부 정보를 탄성 서버에 넣으면 나에게 고통이 될 것입니다. Django 모델에서 중첩 된 관계.

신축성있는 검색 서버에 모든 세부 정보를 넣지 않으면 신축성있는 검색 쿼리에 비해 느린 항목의 세부 정보를 얻기 위해 데이터베이스에 쿼리해야합니다.

어떤 방법을 사용해야합니까?

탄성 검색 서버에서 중첩 된 관계와 함께 모든 속성을 색인화하고 탄성 검색에 대한 모든 쿼리 작업을 수행합니다.

또는

인덱스에만 필요한 탄성 검색 서버의 필드 및 상세 뷰는 필수 필드 ID가 데이터베이스에 Q 쿼리를 수행.

이전에 이런 경험이있는 사람이 있습니까?

답변

1

이 결정은 실제로 탄성 검색으로 해결하려는 사항에 달려 있습니다. 최근 탄성 검색을 사용한 프로젝트에서 일했습니다. 그 이유는 검색 속도를 높이고 더 나은 검색 결과를 제공하기 위해서였습니다. 그러나 선택한 제품의 세부 정보는 데이터베이스 (mssql)에서 쿼리됩니다. 모든 또는 일부 필드를 매핑하는 결정은 탄성 검색에서 원하는 항목에 따라 달라집니다. 더 나은 검색 결과 (결과 + 속도)를 얻으려면 사용자를 검색하는 데 도움이되는 필드 만 매핑하는 것이 좋습니다.