2013-05-13 62 views
1

如何从Lucene的字符串字段中搜索字?

我有场TITLE,containts文档标题如何从Lucene的String字段中搜索字Index

Lucene索引如:电视没有工作,没有移动工作

我想从标题搜索特定的词。

以下代码给出了完整内容的结果,如果我将FULL_CONTENET更改为TITLE,那么我没有得到任何结果。

Query qry = null; 
qry = new QueryParser(FULL_CONTENT, new SimpleAnalyzer()).parse("not"); 
Searcher searcher = null; 
searcher = new IndexSearcher(indexDirectory); 
Hits hits = null; 
hits = searcher.search(qry); 
System.out.println(hits.length()); 
+3

您是如何编制索引文件的? – jpountz 2013-05-13 13:52:07

回答

0

由于“NOT”是Lucene查询语法操作符,可能是您的问题。

0

问题是StringAnalyzer应用小写过滤器。您的询问将采用小写字母:

例如标题:移动。

StringField不适用任何分析,因此您的文本将按原样编入索引。如果您将StringField更改为TextField,则将由StringAnalyzer进行分析并在索引中转换为小写。

如果将StringAnalyzer替换为WhitespaceAnalyzer,则不存在小写字母过滤器,并且它将再次工作(因为您的查询未转换为小写字母)。