我们目前正在使用Lucene 2.1.0进行网站搜索,我们遇到了一个棘手的问题:在目标搜索过程中,我们的一个索引字段被忽略了.以下是将字段添加到索引中的文档的代码:
// Add market_local to index
contactDocument.add(
new Field(
"market_local"
, StringUtils.objectToString(
currClip.get(
"market_local"
)
)
, Field.Store.YES
, Field.Index.UN_TOKENIZED
)
);
Run Code Online (Sandbox Code Playgroud)
对索引运行查询(*)将返回以下结果:
Result 1:
title: Foo Bar
market_local: Local
Result 2:
title: Bar Foo
market_local: National
Run Code Online (Sandbox Code Playgroud)
运行目标查询:
+( market_local:Local )
Run Code Online (Sandbox Code Playgroud)
不会找到任何结果.
我意识到这是一个非常具体的问题,我只是想知道从哪里开始调试这个问题,因为我是一个Lucene新手.
UPDATE
安装了Luke,检查了最新的索引...现场market_local可用于搜索,所以如果我执行类似:
market_local:Local
Run Code Online (Sandbox Code Playgroud)
搜索工作正常(在卢克).我现在正在查看我们的Analyzer代码,有什么方法可以解决这个问题,因为我们的搜索应用程序使用Lucene 2.1.0并且最新版本的Luke使用的是2.3.0?