2

如何从 Lucene 索引字符串字段中搜索单词?

我有字段TITLE的 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());
4

2 回答 2

1

As "NOT" is a Lucene query syntax operator, that may be your problem.

于 2014-02-14T23:53:47.427 回答
-1

问题是StringAnalyzer应用了小写过滤器。您的查询将使用小写:

例如标题:移动。

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

如果您替换StringAnalyzerWhitespaceAnalyzer没有小写过滤器,它将再次起作用(因为您的查询不会转换为小写)。

于 2015-04-01T15:09:51.527 回答