2010-01-19 5 views
3

웹 사이트는 단지이야,하고 사람들을 사용 ID nr : s와 mysql 쿼리를 실행 한 다음 해당 ID가있는 결과를 마지막으로 표시합니다.질문과 좀 더

현재 각 카테고리에 대해 약 30 개의 테이블이 MySQL에 있습니다.

1- 내가 위와 다르게해야한다고 생각합니까?

2 한 SOLR 문서 또는 여러 문서를 사용해야합니까? 또한 문서는 SOLR 색인과 동일합니까?

3- SOLR 만 사용하고 각 테이블에 많은 열이 있다는 것을 알고 MySQL을 건너 뛰는 것이 좋을까요? 개인적으로 MySQL을 사용하는 것이 SOLR보다 훨씬 낫습니다.

4- 사용자가 특정 지역의 자동차를 검색하려고한다고 가정 할 때 SOLR에서 이러한 유형의 쿼리가 수행되고 완료되는 방식은 무엇입니까? 예 : q=cars&region=washington?

SOLR에 대한 정보가 많이 있다고 생각할 수 있습니다.하지만 SOLR 및 SOLR PHP 클라이언트와 함께 PHP를 사용하지 않는 것이 좋습니다 ... 아마도이 모든 것을 배웠을 때 나는 무엇인가 쓸 것입니다. ... 아니면 당신 중 누군가가 뭔가 쓸 수 있어요! 모든 도움을 다시

감사합니다 ...

+0

누구? ............ –

답변

7

첫째, 정의하십시오 SOLR/루씬 문서는 대략 데이터베이스 행에 해당합니다. 인덱스는 데이터베이스 테이블과 거의 같습니다.

모든 분류 된 관련 정보를 Solr에 저장하는 것이 좋습니다. Solr과 데이터베이스를 쿼리하는 것은 비효율적이며 매우 불필요합니다.

Solr에 region 필드가 있다고 가정하면 특정 지역에서의 쿼리는 q=cars+region:washington과 같을 것입니다.

Solr wiki에는 많은 유용한 정보가 있으며 pretty good basic tutorial이 있습니다. 물론 이것은 항상 향상 될 수 있으므로 명확하지 않은 것을 발견하면 Solr 팀에 알리십시오.

PHP를 사용하지 않으므로 PHP 클라이언트에 대해서는 언급 할 수 없습니다.

+0

+1 튜토리얼 링크입니다. – Lakshmi

0

Solr은 SimpleXml을 사용하여 구문의 결과를 쉽게 이해할 수 있습니다. SolPHP 클라이언트 라이브러리 (http://wiki.apache.org/solr/SolPHP)를 사용할 수도 있습니다.

Solr은 실제로 매우 효율적입니다. Solr 인덱스에서 필요한만큼 많은 데이터를 넣는 것이 좋습니다. 이는 데이터베이스 트래픽이 훨씬 적을 수 있음을 의미합니다.

예제 Solr 응용 프로그램 (Jetty와 함께 제공됨)을 설치 한 경우 admin 인터페이스를 사용하여 Solr 쿼리를 개발할 수 있습니다. 결과의 URI는 당신이 PHP로 만들려는 것입니다.

Solr으로 시작할 때 solrconfig.xml 및 schema.xml 파일이 올바로 표시되는 것이 가장 어려운 부분입니다. 아주 기본적인 설정으로 시작하고 필드를 추가 할 때마다 웹 앱을 다시 시작하는 것이 좋습니다. 전체 schema.xml로 시작하는 것은 혼란 스러울 수 있습니다.

0

2 - 난 단지 하나 개의 SOLR 문서 또는 여러 문서를 사용해야합니까? 또한 SOLR 인덱스와 동일한 문서가 있습니까?

3- SOLR 만 사용하고 각 테이블에 개의 열이 많이 있다는 것을 알고 MySQL을 건너 뛰는 것이 좋을까요? 개인적으로 MySQL을 사용하는 것이 SOLR보다 훨씬 낫습니다.

문서는 solr 색인의 "인스턴스"입니다. solr 코어 당 하나의 solr 인덱스 만 빌드 할 수 있다는 점을 고려하십시오. 코어는 독립적 인 solr 서버로서 동일한 solr insallation으로 작동합니다.

http://wiki.apache.org/solr/CoreAdmin

요 일부 테이블 내용과 두 번째 수준의 검색을 수행하는 다른 인덱스 병합 하나의 인덱스를 구축 할 수 있습니다 ...

당신이 당신의 아키텍처와 데이터에 대한 더 자세한 정보를 줄 것이다?

+4

문서는 Solr 색인의 인스턴스가 아니 * * * 인스턴스입니다. –

0

다른 사람들이 제안한 것처럼 mysql 데이터를 저장하고 색인을 생성 할 수 있으며 solr 색인에서 쿼리를 실행할 수 있으므로 mysql을 사용할 필요가 없습니다. id를 저장하고 색인을 생성하고 id를 얻은 다음 mysql query를 실행하여 해당 id에 대한 추가 데이터를 얻을 필요가 없습니다. 당신은 solr 자체에 id에 해당하는 다른 데이터를 저장할 수 있습니다.

solr PHP 클라이언트에 대해서는 사용하지 않아도되므로 Solr Web API와 같이 REST를 직접 사용하는 것이 좋습니다. file_get_contents("http://IP:port/solr/#/core/select?q=query&start=0&rows=100&wt=json")과 같은 PHP 함수를 사용할 수도 있고, 필요하다면 PHP와 함께 컬을 사용할 수도 있습니다. 두 방법 모두 거의 동일하고 효율적입니다. 이렇게하면 json의 데이터가 wt=json으로 반환됩니다. 그런 다음 PHP 함수 json_decode($returned_data)을 사용하여 해당 데이터를 객체로 가져옵니다.

아무 것도 묻지 않으시면 답장을 보내주십시오.

관련 문제