Java Lucene字段不可搜索

Java Lucene字段不可搜索,java,indexing,lucene,Java,Indexing,Lucene,更新原始问题 我创建了一个程序,从数据库中提取内容,然后为其编制索引。在这个过程中,我构建了一个名为searchField的字符串变量,它由各种不同的信息组成。一旦建立了这个字符串,我将进行以下调用 doc.add(new Field("search", this.stripHTMLTags(searchField), Field.Store.NO, Field.Index.ANALYZED)); 我知道字符串不是空的,因为我放入了一个print语句来显示内容,并且正确的数据正在写入doc.a

更新原始问题

我创建了一个程序,从数据库中提取内容,然后为其编制索引。在这个过程中,我构建了一个名为searchField的字符串变量,它由各种不同的信息组成。一旦建立了这个字符串,我将进行以下调用

doc.add(new Field("search", this.stripHTMLTags(searchField), Field.Store.NO, Field.Index.ANALYZED));
我知道字符串不是空的,因为我放入了一个print语句来显示内容,并且正确的数据正在写入doc.add()

当我搜索关键字时,搜索字段中实际上显示了什么,我没有得到任何点击

我不知道还有什么其他的细节可以提供,我相信还有更多的需要,请帮助我帮助你更好地理解,希望这可以得到解决

提前谢谢

试试看

doc.add(new Field("search", this.stripHTMLTags(searchField), Field.Store.YES, Field.Index.ANALYZED));

我建议您将其索引到一个文件目录,然后使用来查看索引内容。Luke是调试Lucene相关问题的最佳工具


现在我的直觉是,在索引和搜索时,您正在使用不同的分析器。确保索引和搜索操作使用相同的分析器。

我看到您已将字段“存储”更改为“是”。阅读手册,我发现它实际上会出现在索引中。所以你确实回答了我的问题。然而,它还说,您不应该存储大量文本,搜索字段将是。我遇到的问题是,在为searchField编制索引后,我似乎无法搜索searchField字符串中的任何术语。我将修改我的上述问题以反映这个新问题。只是为了确保,您是否将文档本身添加到索引中?还有,你是如何进行搜索的?我建议你描述一下你是如何建立索引的,你使用的分析器,一个示例文档和一个你运行的示例查询,它们应该会被点击,但不会被点击。顺便说一句,对于Lucene用户来说,这是一个很好的用户名…你能检查stripHTMLTags(searchField)的输出吗?Lucene框架对于一些输入类型表现得很奇怪。也许如果你能分享你在print语句中输入的任何内容,那就是对db的精确查询;这可以给你一个正确的答案。有点可笑,你推荐的工具和OP的名字是一样的