- java/
- Java 是什么原因引起的&书信电报;字段>;无位置数据索引”;Lucene使用Luke时出错?
Java 是什么原因引起的&书信电报;字段>;无位置数据索引”;Lucene使用Luke时出错?
Java 是什么原因引起的&书信电报;字段>;无位置数据索引”;Lucene使用Luke时出错?,java,lucene,luke,Java,Lucene,Luke,我试图从使用Lucene索引的文档中搜索DOI字段。DOI的值类似于“10.1186/1756-3305-7-73”。请原谅,如果这个问题很愚蠢,但这是我第一次把手伸进Lucene
错误是:
[2019-02-05 17:37:18233]错误(ExceptionHandler.java:36)-字段“doi”被索引,没有位置数据;无法运行短语查询(短语=doi:“10.1186 s12937 015 0065”)
java.lang.IllegalStateException:字段“doi”被
我试图从使用Lucene索引的文档中搜索DOI字段。DOI的值类似于“10.1186/1756-3305-7-73”。请原谅,如果这个问题很愚蠢,但这是我第一次把手伸进Lucene
错误是:
[2019-02-05 17:37:18233]错误(ExceptionHandler.java:36)-字段“doi”被索引,没有位置数据;无法运行短语查询(短语=doi:“10.1186 s12937 015 0065”)
java.lang.IllegalStateException:字段“doi”被索引,没有位置数据;无法运行短语查询(短语=doi:“10.1186 s12937 015 0065”)
问题详情:
- Lucene版本-7
- 查询表达式-doi:“10.1186/1756-3305-7-73”
- 解析查询-doi:“10.118617563305773”(注意,它删除了正斜杠和连字符)
- 分析仪-英语分析仪、标准分析仪、简单分析仪
- 用于导航Lucene索引的软件-Luke v7.6.0
不,我没有弄错。字段“DOI”的值已使用Lucene编制索引
以下是错误的完整日志:
[2019-02-05 17:37:18233]错误(ExceptionHandler.java:36)-字段“doi”被索引,没有位置数据;无法运行短语查询(短语=doi:“10.1186 s12937 015 0065”)
java.lang.IllegalStateException:字段“doi”被索引,没有位置数据;无法运行短语查询(短语=doi:“10.1186 s12937 015 0065”)
位于org.apache.lucene.search.PhraseQuery$1.getPhraseMatcher(PhraseQuery.java:434)
在org.apache.lucene.search.PhraseWeight.scorer上(PhraseWeight.java:46)
位于org.apache.lucene.search.Weight.bulkScorer(Weight.java:177)
位于org.apache.lucene.search.indexsearch.search(indexsearch.java:667)
位于org.apache.lucene.search.indexsearch.search(indexsearch.java:471)
位于org.apache.lucene.search.indexsearch.search(indexsearch.java:592)
位于org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:447)
在org.apache.lucene.luke.models.search.SearchImpl.search(SearchImpl.java:283)上
在org.apache.lucene.luke.models.search.SearchImpl.search(SearchImpl.java:273)
位于org.apache.lucene.luke.app.desktop.components.SearchPanelProvider.doSearch(SearchPanelProvider.java:516)
org.apache.lucene.luke.app.desktop.components.SearchPanelProvider.access$500(SearchPanelProvider.java:93)
位于org.apache.lucene.luke.app.desktop.components.SearchPanelProvider$ListenerFunctions.execSearch(SearchPanelProvider.java:672)
在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
位于javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
在javax.swing.DefaultButtonModel.fireActionPerformed上(DefaultButtonModel.java:402)
在javax.swing.DefaultButtonModel.setPressed中(DefaultButtonModel.java:259)
在javax.swing.plaf.basic.BasicButtonListener.MouseRelease(BasicButtonListener.java:252)
位于java.awt.Component.ProcessMouseeEvent(Component.java:6539)
位于javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3324)
位于java.awt.Component.processEvent(Component.java:6304)
位于java.awt.Container.processEvent(Container.java:2239)
位于java.awt.Component.dispatchEventImpl(Component.java:4889)
位于java.awt.Container.dispatchEventImpl(Container.java:2297)
位于java.awt.Component.dispatchEvent(Component.java:4711)
位于java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4904)
位于java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4535)
位于java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
位于java.awt.Container.dispatchEventImpl(Container.java:2283)
位于java.awt.Window.dispatchEventImpl(Window.java:2746)
位于java.awt.Component.dispatchEvent(Component.java:4711)
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
在java.awt.EventQueue$4.run(EventQueue.java:733)
在java.awt.EventQueue$4.run(EventQueue.java:731)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
我的直觉是,这里的错误与解析查询表达式有关。我注意到-和/是从我的原始查询中解析出来的,但我不知道如何解决这个问题。对于此事的任何指示,我们都将不胜感激。当!!经过一整天的努力,我终于找到了答案
不能将标准分析仪、简单分析仪或英语分析仪与唯一标识符类型查询一起使用。它们解析或删减重要的关键字符号,如连字符和/或正斜杠
因此,我将关键字分析器JAR导入Luke,并使用它搜索查询表达式
T