2017-04-11 9 views
0

저는 MySQL의 사용을 끝내야하는 곳과 SOLR을 시작해야하는 곳에 대해 다소 혼란 스럽습니다.Solr (또는 다른면 검색 엔진)에서 검색/탐색, 적절한 방법은 무엇입니까?

저는 (아마존과 같은 전자 상거래 사이트와 마찬가지로) 많은 관계형 데이터를 가지고 있습니다.

나는 이것을 mysql에 넣음으로써 시작했고 크기/속도와 문제를 일으켰다. 그리고 많은 데이터를 색인 할 필요가 없었다. 그래서 저는이 모든 데이터를 SOLR에 넣었습니다. 정말 빠릅니다. 어떤면에서 SOLR은 현재 MYSQL 데이터베이스의 캐쉬와 같습니다 (ID로 연결된 여러 관계형 테이블이 있음).

나는 많은 것들에 대해 혼란 스럽다.

1) mysql 데이터베이스가 필요합니까? SOLR 테이블에 데이터를 쉽게 편집하고 추가 할 수 있습니까? MySQL 데이터베이스가 오버 헤드를 추가하고 있습니까?

2) 패싯을 사용하여 검색 탐색에 가장 적합한 방법은 무엇입니까? 나는 현재 하나의 flat solr 파일로 전체 mysql 데이터베이스를 통일한다. 엔트리가 가질 수있는 많은 관계를 고려할 때 이것을 어떻게하는 것이 가장 좋은가? 이 모든 작업이 PathHierarchyTokenizer를 사용하여 SOLR에서 수행되어야합니까? 하나의 필드에 여러 패싯을 넣어야합니까?

3) 이러한 페이지에 대한 SEO 제목을 만들 수 있도록 MYSQL에 범주/얼굴을 저장할 필요가 있습니까? 내가 패밀리로서의 한 페이지의 실제 개념이 없기 때문에 SOLR에서 이것을 수행 할 수 없다고 생각합니까? 추가 정보가 추가 될 수있는 패싯의 정적 저장소/캐시의 필요성이있는 것으로 보이며 이것이 SOLR에서 수행되지 않는다는 것을 의미하는 것으로 보입니다.

4) 아니면 그냥 내 MYSQL 데이터베이스의 캐시로 SOLR을 사용해야합니까? 그래서 mysql에서 모든 카테고리 메뉴를 얻을 수 있지만 URL 쿼리가 발생하면 SOLR에서 모든 제품을 가져 옵니까?

solr이 멋지고 빠르지 만 DB와는 큰 겹침이 있기 때문에 다른 사람들이 사용하기에 적합한 곳에서 머리를 쓰려고 고심하고 있기 때문에 다른 사람들의 생각을 듣고 싶습니다.

+0

별도의 질문에서 패싯에 관한 특정 질문을 게시합니다. –

답변

0

mysql 데이터베이스가 필요합니까?

관계가 필요한 경우 RDBMS는 평범하고 비정규 화 된 세계관이있는 Solr보다 좋습니다.

Solr은 일반적으로 레코드 소스로 간주되지 않습니다. 이와 같이 사용하면 모든 필드를 "저장"해야합니다. 데이터를 백업하고 복원하는 방법을 고려하십시오.

좋은 시작점으로 Solr을 사용하여 잘 수행 할 수 있습니다. 인덱싱 할 필요가있는 것만을 인덱싱하고 저장할 항목을 저장하십시오. Solr 인덱스는 분석을 통해 매우 커질 수 있고 더 큰 인덱스는 덜 효율적이라는 것을 기억하십시오.