2011-03-17 2 views
0

이 설명서에 따라 solaris에 직접 db 테이블을 인덱싱합니다. http://wiki.apache.org/solr/DIHQuickStartsolr 인덱스를 읽는 방법?

전체 가져 오기가 작동합니다. 나는이 같은 데이터를 쿼리 할 때 나는 는

$solr = new Apache_Solr_Service('localhost', '8983', 'solr/'); 

    $offset = 0; 
    $limit = 1000; 

    $queries = array(
     'details:Server' 
    ); 

    $response = $solr->search($query, $offset, $limit); 

SOLR 자체가 실행되고 어떤 결과를 얻을 수 없습니다. "세부 정보"행을 쿼리하려고하지만 지금 결과를 제공합니다.

내가 뭘 잘못하고 있는지 알기!

의 schema.xml : http://pastebin.com/2kx7MkDX

데이터-config.xml 파일 : http://pastebin.com/vtDZzuqC

solrconfig.xml : http://pastebin.com/V6nzvMa5

모든 예 /에서/SOLR/conf의/

답변

4

여기 당신의 대답이다. Solr에서는 단일 리터럴 토큰으로 인덱싱된다는 의미입니다. '문자열'유형은 대개 식별자에 사용됩니다.

따라서, 귀하의 요청에 '세부 정보 : 서버'은 '세부 정보'정확히은 '서버'와 하지 '세부 사항' '서버'가 포함 된 문서를 동일 문서를 일치합니다.

뭔가에 '세부 정보'필드를 변경

그 것이다 인덱스 별도의 단어로 텍스트 (토큰) :

<field name="details" type="text" ... 
<!-- for instance --> 

그리고 다시 인덱스 다. 다른 필드 정의를 검토 할 수도 있습니다.

schema.xml의 기본 유형 정의를 읽는 것이 좋습니다.

2

해야하는

$solr = new Apache_Solr_Service('localhost', '8983', 'solr/'); 

be

$solr = new Apache_Solr_Service('localhost', '8983', '/solr'); 
+0

흠이 나에게 도움이되지 않습니다. 나는 색인 manully를보고 모든 자료는 거기있다. 질의는 대답에 대해 stdClass 객체 ([numFound] => 0 [start] => 0 [docs] => Array()) –

0

아마도 schema.xml을 볼 필요가 있습니다. 거기에 오류가있을 수 있습니다.

"server"를 소문자 "s"로 검색하면 어떻게됩니까?

문제가 해결되면 분석 문제가 있으므로 schema.xml을 확인하십시오.

스키마 브라우저에서 (관리 페이지의 링크를 따라) 볼 수도 있습니다. 왼쪽의 '세부 정보'입력란을 클릭하고 1000 또는 10000 검색어를보고 '서버'(또는 '서버')라는 단어가 있는지 확인하십시오. 단어가 색인에 있으면 (적어도 필드에 고유 한 단어가 10,000 개 미만인 경우) 표시됩니다.

귀하의 '세부 정보'필드가 '문자열'로 정의된다

+1

을 반환합니다. 그러나 서버와 서버 모두 검색 결과가 없습니다. 그러나 서버는 색인에 있습니다 (현재 90 용어가 있습니다). 나는 위의 코드로 나를 위해 일한 db를 직접 인덱싱하기 시작하기 전 며칠 전에 기억하지만, 지금은 결과가 전혀 없습니다. 소스 코드로 내 질문을 편집했습니다. 한번보세요. –

1

데이터 구성에 추가하십시오.자신이 잘 실행되고 SOLR XML

<dataConfig> 
    <dataSource type="JdbcDataSource" 
      driver="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost/admin_pproject" 
      user="root" 
      password=""/> 
    <document> 
    <entity name="id" 
      query="select id, name,details, owner, subtype, edit, sub, type, provision, active from programme"> 

      <!-- ADD-->   
      <field column="id" name="id"/> 
      <field column="name" name="name" /> 
      <field column="details" name="details" /> 
      <field column="owner" name="owner" /> 
      <field column="subtype" name="subtype" /> 
      <field column="edit" name="edit" /> 
      <field column="sub" name="sub" /> 
      <field column="type" name="type" /> 
      <field column="provision" name="provision" /> 
      <field column="active" name="active" /> 


     </entity> 
    </document> 
</dataConfig> 

테스트