我正在使用Java,并且已经使用 standardAnalyzer 分析了我的文档。
如何使用EnglishAnalyzer
阻止从textField获得的单词?
(事后分析)
例如,如果我在文本字段中键入“ Burger”或“ Burgers”,即使根本没有为“ Burger”这个术语建立索引,但要为“ Burgers”建立索引,我也想获得结果。
这是我使用standardAnalyzer索引的字段的示例
name=(String)jsonObject.get("name");
doc.add(new TextField("name",name, Field.Store.YES));
这就是我构建查询的方式
indexdirectory = FSDirectory.open(indexDir);
indexreader = DirectoryReader.open(indexdirectory);
analyzer = new StandardAnalyzer();
indexsearcher = new IndexSearcher(indexreader);
QueryParser nameParser = new QueryParser("name", analyzer);
nameQuery = nameParser.parse(textField.getText().toLowerCase());
TopDocs topdocs = null;
topdocs = indexsearcher.search(nameQuery, 50);
答案 0 :(得分:0)
我通过在索引过程中使用EnglishAnalyzer分析我的文档来使其工作(预分析茎)。 换句话说,在索引文档和创建查询时必须使用EnglishAnalyzer 。