문제

700.000 거리 이름, 8111 자치제 이름 및 80333 지역 우편 번호가 있습니다. 이 모든 정보를 Solr에서 색인하고 싶습니다. 사용자는 AJAX 자동 완성 양식을 통해이 정보를 검색하려고합니다. 나는 Ajax Autocomplete 형식의 일부 데이터와 행동이 거의 없었습니다.

 <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory"
            ignoreCase="true"
            words="stopwords.txt"
            enablePositionIncrements="true"
            />
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
  </analyzer>
</fieldType>
.

모든 데이터를 solr

로로드 할 때 문제가 발생합니다.

  • 어떻게 Solr 서버에 정보를로드해야합니다 (나는 Grails 앱에 있고 데이터 입력 처리기가없는 정보가있는 인스턴스를로드해야합니다.) 오늘날 나는 오늘날 많은 시간이었고 마침내 Grails Console 충돌 :( -> 서비스를 수행하는 대신 Grails 스크립트를 사용하고 Grails Console로 IT를 실행해야합니까 ??
  • 또는 데이터 입력 처리기를 사용하여 더 빨리로드해야합니까 ?? 데이터 입력 처리기가있는 다른 테이블의 다른 열에서 문자열 값을 연결할 수 있습니까 ??

(각각 하나의 문서가 다른 문서를 갖는 것이 괜찮습니다 (700.000 + 8111 + 80.333 문서) ??)

시간에 감사드립니다

도움이 되었습니까?

해결책

귀하의 시정촌, 거리 이름 및 사후 코드가 별도로 자동 완성을 가정합니다.이 경우 별도의

또는 데이터 입력 핸들러를 사용하여 더 빨리로드해야합니까 ??

DIH는 꽤 빠르며이 정보가 자주 변경되지 않는 한, 이런 식으로 할 수있는 괜찮아야합니다.

데이터 입력 핸들러가있는 다른 테이블의 다른 테이블의 다른 열에서 문자열 값을 연결할 수 있습니까 ??

예;data-config.xml에서 특정 SQL 쿼리를 제공하며 데이터베이스의 네이티브 연결 (Oracle에서 ||)을 사용할 수 있습니다.

다른 팁

진지하게, 쉘 스크립트를 작성하고 CURL을 사용하여 SOLR에 업데이트를 보내십시오.

수영장에 떠있는 배에 장착 된 대포가있는 벽에서 캔을 쏘려고합니다. 대포 나 배나 우주선이나 수영장이 필요하지 않습니다. 그냥 공기 건이 있고 업데이트를 한 번에 하나씩 끼 웁니다.

샘플 SOLR 업데이트가 완료된 Examlple 쉘 스크립트의 경우 Apache-Solr-3.5.0.tgz 또는 Apache-solr-3.5.0.zip을 근처에서 거울에서 다운로드하십시오. http://lucene.apache.org/solr/downloads.html 에서 찾기

아카이브의 압축을 풀고 예제 디렉토리로 이동하여 다음 지침을 따르십시오. http://lucene.apache.org/solr/tutorial.html

UNIX에있는 경우 post.sh를 사용하십시오.

그런데 서버에 설치 한 Solr 버전을 확인하십시오. 3.50이 아니라면, 여기에 새로운 버전을 사용하면 여기에 최신 버전을 사용하고 있습니까?

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