試行手順をご教示いただきありがとうございます。
現環境の各バージョンについては、以下の通りです。
CentOS Linux release 7.7.1908 (Core)
Apache Solr 8.0.0
Moodle 3.6.3
ご案内の下記手順を試しましたが、結果は変わりませんでした。
- サイト管理者としてMoodleにログインする。
- 「管理 > サイト管理 > プラグイン > 検索 > グローバル検索を管理する」に移動する。
- 「4. データをインデックス化する」をクリックする。
- 「すべてのインデックスコンテンツを削除する」をクリックする。
- 「続ける」をクリックする。
- 「すべてのサイトコンテンツを再インデックス化する」をクリックする。
- 「続ける」をクリックする。
また、Solrコアを削除 → 再作成をしてみた上で試してみても同じ結果でした。
なお、Solrコアを作成および再作成した際には、以下のようなメッセージが表示されました。
$ /opt/solr/bin/solr create_core -c moodle-core
WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
To turn off: bin/solr config -c moodle-core -p 8983 -action set-user-property -property update.autoCreateFields -value false
INFO - 2020-01-14 13:40:50.081; org.apache.solr.util.configuration.SSLCredentialProviderFactory; Processing SSL Credential Provider chain: env;sysprop
Created new core 'moodle-core'
また、インデックス作成後に検索したときにSolr側(http://xx.xx:8983/solr/#/)で添付画像のログが表示されました。
ログをクリックすると詳細が表示されるのですが、その詳細が以下となります。
org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError: Query Field 'title' is not a valid field name
at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:216)
at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:272)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2559)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:516)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:394)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:340)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:502)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.solr.search.SyntaxError: Query Field 'title' is not a valid field name
at org.apache.solr.search.ExtendedDismaxQParser.checkFieldInSchema(ExtendedDismaxQParser.java:275)
at org.apache.solr.search.ExtendedDismaxQParser.checkFieldsInSchema(ExtendedDismaxQParser.java:287)
at org.apache.solr.search.ExtendedDismaxQParser.validateQueryFields(ExtendedDismaxQParser.java:226)
at org.apache.solr.search.ExtendedDismaxQParser.parse(ExtendedDismaxQParser.java:151)
at org.apache.solr.search.QParser.getQuery(QParser.java:173)
at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:158)
... 41 more
Caused by: org.apache.solr.common.SolrException: undefined field: "title"
at org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1234)
at org.apache.solr.search.ExtendedDismaxQParser.checkFieldInSchema(ExtendedDismaxQParser.java:273)
... 46 more
※ログの中にmycoreに関するエラーが出ていますが、単にコア名を打ち間違えたものですので、それについては無視してください。
さらに、Moodle Trackerで以下のチケットを発見しました。
Solr 7.x compatibility with Moodle search plugin
https://tracker.moodle.org/browse/MDL-60759
Moodle3.5でSolr7.xに対応したようなのですが、
そうなるとSolr8.xはまだ対応していないのかもしれないと思い、
Solrの8.0.0をアンインストールして7.xをインストールしようか検討しています。
以上、よろしくお願いいたします。