Solrj 9.7.0 の RAMDirectoryFactory | KandaSearch Community Support Forum

Solrj 9.7.0 の RAMDirectoryFactory

トピック作成者:ks-solruserml-bot (2025/02/12 15:37 投稿)
2
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/z0k8rwlmrmkk7k3z3v41o0409wx492xm into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

皆さんへ、

私はApache Solrを集中的に利用するアプリケーションを開発しています。このアプリケーションでは、図書館のカタログレコードを検索可能にする機能を含んでいます。そのアプリケーションのインデックス作成機能をテストするために、JUnitテストをいくつか書きました。それらのテストでは、EmbeddedSolrServerを使用しています。これらのテストの意図は、インメモリインデックス(core.RAMDirectoryFactoryを使用)を作成することです。

最近、Solrのアップデートにより、これらのテストで呼び出すAPIメソッドがいくつか変更されましたが、これまでは問題を解決することができました。ただし、現在は解決できないエラーメッセージに直面しており、アドバイスを求めています。

使用しているsolrconfig.xmlは以下の通りです:

<?xml version="1.0" encoding="UTF-8" ?>
<config>
  <luceneMatchVersion>9.11</luceneMatchVersion>
  <indexConfig>
    <useCompoundFile>${useCompoundFile:false}</useCompoundFile>
    <lockType>${solr.lock.type:single}</lockType>
  </indexConfig>
  <dataDir>${solr.data.dir:data}</dataDir>
  <directoryFactory class="org.apache.solr.core.RAMDirectoryFactory" />
  <schemaFactory class="ClassicIndexSchemaFactory"/>
  
  <updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
      <str name="dir">${solr.data.dir:}</str>
    </updateLog>
  </updateHandler>

  <requestDispatcher>
    <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="-1" />
  </requestDispatcher>

  <requestHandler name="/select" class="solr.SearchHandler"/>

  <initParams path="/select">
    <lst name="defaults">
      <str name="df">name</str>
    </lst>
  </initParams>
</config>

以下のエラーメッセージが表示されます:

org.apache.solr.common.SolrException: Unable to create core [<core name>]
...
caused by org.apache.solr.common.SolrException: RAMDirectory can only
be used with the 'single' lock factory type.

次のような変更を加えた場合でも、同じエラーが発生します:

<directoryFactory class="org.apache.solr.core.RAMDirectoryFactory">
  <str name="lockType">single</str>
</directoryFactory>

または:

<directoryFactory class="org.apache.solr.core.RAMDirectoryFactory">
  <str name="rawLockType">single</str>
</directoryFactory>

何かアドバイスがあれば、あるいは同様のユースケースをご存じで参考にできる事例があれば教えていただけないでしょうか?

どうぞよろしくお願いいたします。
Péter

返信投稿者:ks-solruserml-bot (2025/02/12 15:37 投稿)

組み込みモードを使用しているテストでは、org.apache.solr.core.MockDirectoryFactoryを試してみると良いかもしれません。メインテストでの類似の問題については、以下のリンクを参照してください:
https://github.com/apache/solr/pull/2598

Jan

返信投稿者:ks-solruserml-bot (2025/02/12 15:37 投稿)

確か、ByteBuffersDirectoryFactoryが新しいコードで使用すべきものだったはずです。詳細はこちらをご参照ください:
https://issues.apache.org/jira/browse/SOLR-12861

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2025 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?