aparo / opensearch-analysis-ik

The IK Analysis plugin integrates Lucene IK analyzer into OpenSearch, support customized dictionary. Port of https://github.com/medcl/elasticsearch-analysis-ik
Apache License 2.0
40 stars 14 forks source link

Wrong configuration location with opensearch 2.6.0 #20

Open Haijian01 opened 1 year ago

Haijian01 commented 1 year ago

I installed the opensearch-analysis-ik plugin on the opensearch 2.6.0, but in the opensearch startup logs, got the error below: [2023-03-28T11:15:35,623][INFO ][o.w.a.d.Dictionary ] [opensearch-cluster-master-0] try load config from /usr/share/opensearch/config/analysis-ik/IKAnalyzer.cfg.xml [2023-03-28T11:15:35,624][INFO ][o.w.a.d.Dictionary ] [opensearch-cluster-master-0] try load config from /usr/share/opensearch/plugins/opensearch-analysis-ik/config/IKAnalyzer.cfg.xml [2023-03-28T11:15:35,624][ERROR][o.w.a.d.Dictionary ] [opensearch-cluster-master-0] ik-analyzer java.io.FileNotFoundException: /usr/share/opensearch/config/analysis-ik/IKAnalyzer.cfg.xml (No such file or directory) at java.io.FileInputStream.open0(Native Method) ~[?:?] at java.io.FileInputStream.open(FileInputStream.java:216) ~[?:?] at java.io.FileInputStream.<init>(FileInputStream.java:157) ~[?:?] at org.wltea.analyzer.dic.Dictionary.<init>(Dictionary.java:112) [opensearch-analysis-ik-2.6.0.jar:2.6.0] at org.wltea.analyzer.dic.Dictionary.initial(Dictionary.java:148) [opensearch-analysis-ik-2.6.0.jar:2.6.0] at org.wltea.analyzer.cfg.Configuration.<init>(Configuration.java:37) [opensearch-analysis-ik-2.6.0.jar:2.6.0] at org.opensearch.index.analysis.IkTokenizerFactory.<init>(IkTokenizerFactory.java:15) [opensearch-analysis-ik-2.6.0.jar:2.6.0] at org.opensearch.index.analysis.IkTokenizerFactory.getIkSmartTokenizerFactory(IkTokenizerFactory.java:23) [opensearch-analysis-ik-2.6.0.jar:2.6.0] at org.opensearch.index.analysis.AnalysisRegistry.buildMapping(AnalysisRegistry.java:542) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.index.analysis.AnalysisRegistry.buildTokenizerFactories(AnalysisRegistry.java:350) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.index.analysis.AnalysisRegistry.build(AnalysisRegistry.java:241) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.index.IndexModule.newIndexService(IndexModule.java:530) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.indices.IndicesService.createIndexService(IndicesService.java:876) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.indices.IndicesService.createIndex(IndicesService.java:760) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.indices.IndicesService.createIndex(IndicesService.java:209) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.indices.cluster.IndicesClusterStateService.createIndices(IndicesClusterStateService.java:539) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.indices.cluster.IndicesClusterStateService.applyClusterState(IndicesClusterStateService.java:286) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.cluster.service.ClusterApplierService.callClusterStateAppliers(ClusterApplierService.java:606) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.cluster.service.ClusterApplierService.callClusterStateAppliers(ClusterApplierService.java:593) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.cluster.service.ClusterApplierService.applyChanges(ClusterApplierService.java:561) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.cluster.service.ClusterApplierService.runTask(ClusterApplierService.java:484) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.cluster.service.ClusterApplierService$UpdateTask.run(ClusterApplierService.java:186) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:747) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedOpenSearchThreadPoolExecutor.java:282) [opensearch-2.6.0.jar:2.6.0] at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedOpenSearchThreadPoolExecutor.java:245) [opensearch-2.6.0.jar:2.6.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at java.lang.Thread.run(Thread.java:833) [?:?] But the default config location for the opensearch 2.6.0 is /usr/share/opensearch/config/opensearch-analysis-ik, that's why the configuration file not found. Could you please fix this issue?

tiantiandas commented 1 year ago

Create a symbol link can fix this issue:

$ ln -sf ${OPENSEARCH_HOME}/plugins/opensearch-analysis-ik/config ${OPENSEARCH_HOME}/config/opensearch-analysis-ik
Haijian01 commented 1 year ago

Create a symbol link can fix this issue:

$ ln -sf ${OPENSEARCH_HOME}/plugins/opensearch-analysis-ik/config ${OPENSEARCH_HOME}/config/opensearch-analysis-ik

Thanks for workaround. I installed the opensearch with the helm chart, and update the helm chart with install ik plugin command in the statefulset.yml. Okay, i will add the command above after the installation command. BTW, will the problem fixed in the next release?