0

現在、Riak KV サーバー内で Solr 実装を使用しています。Riak のデフォルトに関して、またソフトウェアのアップグレードを恐れないように、コアの SolrConfig.xml に追加の構成を含める必要があります。これは、Ansible コマンドを使用してプログラムで行います。工場出荷時の設定solrconfig.xmlにできるだけ少ない行を追加したい。

この種のパターンを使用したかったので、構成内にたくさんの<searchComponent>とを含める必要があります。<requestHandler>

    <config>
      <!-- snip -->
      <xi:include href="solrconfig_extra.xml" xpointer="xpointer(//searchComponent)" xmlns:xi="http://www.w3.org/2001/XInclude" />
      <xi:include href="solrconfig_extra.xml" xpointer="xpointer(//requestHandler)" xmlns:xi="http://www.w3.org/2001/XInclude" />
    </config>

次のような構成ファイルを使用します。

<?xml version="1.0" encoding="UTF-8" ?>

<container>
  <searchComponent class="solr.SpellCheckComponent" name="suggest">
   <lst name="spellchecker">
     <str name="name">suggest</str>
     <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
     <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookupFactory</str>
     <str name="field">myterms</str>  <!-- the indexed field to derive suggestions from -->
     <float name="threshold">0</float>
     <str name="buildOnCommit">false</str>
  <!--
     <str name="sourceLocation">american-english</str>
  -->
   </lst>
  </searchComponent>

  <requestHandler class="org.apache.solr.handler.component.SearchHandler" name="/suggest">
   <lst name="defaults">
     <str name="spellcheck">true</str>
     <str name="spellcheck.dictionary">suggest</str>
     <str name="spellcheck.onlyMorePopular">true</str>
     <str name="spellcheck.count">5</str>
     <str name="spellcheck.collate">true</str>
   </lst>
   <arr name="components">
     <str>suggest</str>
   </arr>
  </requestHandler>
</container>

残念ながら、Xerces はxpointer()スキーマをサポートしておらelement()ず、要素インデックスを受け入れる唯一の要素として、インクルード コンテナーが子を持つのと同じ量の挿入が必要になります。

どうすればこのインクルージョンを整然と達成できますか?

  • xerces から別の xmlparser に切り替えるのは簡単ですか? ベンダーのソリューションをできるだけ変更したくないことを思い出してください。
  • SolrConfig 文法には、構成に含めることができる中立的な要素がある可能性があります (たとえば、 /config/NEUTRALMAGICTAG/requestHandler は /config/requestHandler として解釈されます)。
  • XInclude を放棄して忘れて、純粋な ansible ファイル エディションを使用する必要がありますか?
4

1 に答える 1

1

TYPO3 は、Solr 構成に XML インクルードを使用します。これは役立つかもしれません。

ただし、最新の Solr は動的スキーマを使用しているため、さまざまなインクルードをすべて含むファイルを、統一されたマネージド スキーマファイルに書き換える可能性があることに注意してください (例: スキーマレス モード用)。無効にするか、書き換えをトリガーしないようにすることができますが、慎重に行う必要があります。

于 2016-06-05T11:44:53.800 に答える