所以我一直在通过混合 Spring Beans xml 配置和 Lucene 来测试我的一个小实验(或者我认为这更像是我懒得将所有这些都放入 java 代码中)。
基本上,我不必编写所有先决条件来制作 IndexWriter,我只是将它的一个实例注入到一个类中。(是的,我就是这么懒)
但是,我在尝试通过 bean 实例化 SimpleFSDirectory 时遇到了一些困难,特别是,我希望我的 Lucene 索引位于相对于 web-app 的路径中。(也许 /WEB-INF/lucene-indexes 什么的)
我目前的配置是这样的:
<bean id="standardAnalyzer" class="org.apache.lucene.analysis.standard.StandardAnalyzer">
<!-- org.apache.lucene.util.Version -->
<constructor-arg>
<value>LUCENE_44</value>
</constructor-arg>
</bean>
<bean id="fileDir" class="java.io.File">
<constructor-arg index="0">
<value>classpath:/test-lucene-store</value>
</constructor-arg>
</bean>
<bean id="directory" class="org.apache.lucene.store.SimpleFSDirectory">
<constructor-arg index="0">
<ref bean="fileDir"/>
</constructor-arg>
</bean>
<bean id="indexWriterConfig" class="org.apache.lucene.index.IndexWriterConfig">
<constructor-arg index="0">
<value>LUCENE_44</value>
</constructor-arg>
<constructor-arg index="1">
<ref bean="standardAnalyzer" />
</constructor-arg>
</bean>
<bean id="indexWriter" class="org.apache.lucene.index.IndexWriter">
<constructor-arg index="0">
<ref bean="directory" />
</constructor-arg>
<constructor-arg index="1">
<ref bean="indexWriterConfig" />
</constructor-arg>
</bean>
我的测试日志说这classpath:**
不是一个有效的路径,但是如果我简单地使用/lucene-store
,索引是在D://lucene-store
(远离预期目标)创建的
你们中有人知道实现目标的方法吗?