문제

전체 가져 오기 동안 SOLR이 인덱스를 지우지 않을 수 있습니다.

모든 서버는 SOLR 3.4를 실행하면 구성이 바닐라와 같습니다.

나는 개발 환경과 내 컴퓨터의 인스턴스에서 이것을 시도했으며, 비슷한 결과를 받았습니다.

스키마는 다소 간단합니다. 이는 현저한 점입니다.

<schema name="System" version="1.4">
...
  </types>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true" />
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" omitNorms="true" positionIncrementGap="0" />
    <fieldType name="date" class="solr.TrieDateField" omitNorms="true" precisionStep="0" positionIncrementGap="0" />
    <fieldType name="documentKey" class="solr.TextField">
      <analyzer type="index"> 
        <tokenizer class="solr.KeywordTokenizerFactory"/> 
      </analyzer> 
      <analyzer type="query"> 
        <tokenizer class="solr.KeywordTokenizerFactory"/> 
      </analyzer> 
    </fieldType>
  </types>
  <fields>
    <field name="document_id" type="documentKey" indexed="true" stored="true" required="true" />
    <field name="entity_id" type="long" indexed="true" stored="true" required="true" />
    <field name="name" type="string" indexed="true" stored="true" required="true" />
    <field name="entity_type" type="string" indexed="true" stored="true" required="false" />
    <field name="Timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
  </fields>
</schema>
.

참고 : - document_id 필드는 인덱스를 채우는 데 사용되는 구체화 된 뷰에서 계산 되며이 색인이 아닌 다른 필드의 조합이지만 Entity_ID의 묘사하는 것입니다. 그것은 독특합니다. - entity_id 필드는 몇 가지 테이블의 키이며 동일한 document_id에 대해서는 새로 고침과 다른 것들 사이에서 격렬하게 바뀔 수 있습니다.

전체 새로 고침 전에, 인덱스를 쿼리하는 경우 :

http://localhost:8080/qq-solr/system/select/?rows=10&q=document_id:%22French_Polynesia/Huahine~4034376%22
.

I get :

<?xml version="1.0" encoding="UTF-8"?>
  <response>
    <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">5</int>
      <lst name="params">
        <str name="indent">true</str>
        <str name="q">document_id:"French_Polynesia/Huahine~4034376"</str>
        <str name="rows">10</str>
      </lst>
    </lst>
  <result name="response" numFound="1" start="0">
    <doc>
      <date name="Timestamp">2012-03-08T09:47:26.335Z</date>
      <str name="document_id">French_Polynesia/Huahine~4034376</str>
      <long name="entity_id">22902728</long>
      <str name="name">Huahine</str>
      <str name="type">LOCATION</str>
    </doc>
  </result>
</response>
.

그 다음에 새로 고침 :

http://localhost:8080/qq-solr/system/dataimport?command=full-import&clean=true&commit=true&optimize=true
.

(나는 깨끗하고, 커밋, 최적화가 중복을 알고 있지만, 나는 그들을 사용하기 위해 그들을 사용했다.) 그리고 잠시 후 모든 것이 a-ok이라는 메시지를 얻는다.

다음 I 인덱스를 다시 쿼리합니다.

http://localhost:8080/qq-solr/system/select/?rows=10&q=document_id:%22French_Polynesia/Huahine~4034376%22
.

및 i는 다음과 같습니다 :

<?xml version="1.0" encoding="UTF-8"?>
  <response>
    <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">5</int>
      <lst name="params">
        <str name="indent">true</str>
        <str name="q">document_id:"French_Polynesia/Huahine~4034376"</str>
        <str name="rows">10</str>
      </lst>
    </lst>
  <result name="response" numFound="1" start="0">
    <doc>
      <date name="Timestamp">2012-03-09T08:31:07.317Z</date>
      <str name="document_id">French_Polynesia/Huahine~4034376</str>
      <long name="entity_id">22902728</long>
      <str name="name">Huahine</str>
      <str name="type">LOCATION</str>
    </doc>
  </result>
</response>
.

그러나 데이터베이스에서 Entity_id가 다릅니다!

Timestamp가 업데이트되었으므로 레코드가 만지었지만 이전 값은 왜 유지되는 이유는 무엇입니까?

도움이 되었습니까?

해결책

대화 형 개발 모드를 통해 DataImportHandler (DIH) 프로세스를 실행합니다 데이터베이스 쿼리가 기대하고있는 Entity_ID를 검색하는 것이 보증 할 수 있습니다.SOLR 항목의 타임 스탬프가 업데이트되고 있기 때문에 DIH 프로세스가 실행 중이지만 데이터가 검색되는 방식 에이 원인을 추측하고 있습니다.

다른 팁

SOLR을 사용 하여이 작업을 수행하는 시간은 언제든지 CURL을 사용하여 첫 번째 인덱스를 수동으로 수동으로 닦아냅니다. "Nofollow"> http://www.alphadevx.com/A / 365-Clearing-A-Solr-Search-index

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top