2012-03-08 3 views
1

우리는 몇 백만 레코드를 포함하는 테이블에 대해 효율적으로 쿼리의 두 가지 유형을 수행 할 수 있어야 조회 :스핑크스/SOLR은/주파수

1) 키워드를 포함하는 "X"가장 최근의 레코드를 반환을 "Y ".

2) 레코드 그룹에 대해 "x"개의 가장 빈번한 키워드를 반환하십시오.

우리는 Sphinx 나 Solr과 같은 외부 검색 서버 사용에 대해 생각해 왔지만 두 가지 유형의 쿼리를 모두 지원할 수 있는지 확실하지 않습니다.

그래서 이러한 유형의 쿼리를 수행하는 가장 효율적인 방법은 무엇입니까?

답변

2

Solr은 schema.xml 파일을 올바르게 설정했다고 가정하면이 두 가지를 모두 수행 할 수 있습니다. 귀하의 질의는 다음과 같을 수 있습니다 :

1 - http://localhost:8983/solr/solr-index/select?q=y&rows=x&sort=date+desc 

2 - http://localhost:8983/solr/solr-index/select?q=*:*&rows=0&facet=true&facet.field=description 

실제로 Solr의 주요 문제점은 데이터를 색인으로 가져 오는 것일 수 있습니다. 그러나 인덱싱 및 최적화조차도 빠릅니다.

0

스핑크스는 1) 땀을 흘리지 않고도 1) 할 수 있습니다. 문제 없습니다.

2) 더 까다 롭습니다. 그것은 상자에서 지원되지 않습니다. 그러나 그것은 할 수 있습니다. 상당한 양의 추가 작업이 필요합니다. 기본적으로 텍스트를 토큰 화하고 다중 값 속성으로 ID를 저장해야합니다. 그런 다음이 mva 열에 대한 쿼리로 그룹을 실행할 수 있습니다.

위의 내용이 무서운 것으로 들리면 다른 해결책을 사용하는 것이 가장 좋습니다. 마지막 답장에서 Solr이 해줄 것입니다.