Java 如何在lucene中基于url获取记录
我有基于URL、正文、标题等的索引。我想基于URL搜索我的代码正在工作,但它只提供准确的URL匹配记录。例如: 记录1: 网址:http://example.com/example/index.php 内容:lucene和bla-bla中的示例很好 主持人:example.com 标题:欢迎来到示例 记录2: 网址:http://example.com/ 内容:示例是最佳解决方案之一 主办example.com 标题:欢迎来到示例 这是只给记录2,因为我的url是,所以如何通过url获得记录1和记录2,因为 一部分 我的搜索代码->Java 如何在lucene中基于url获取记录,java,lucene,Java,Lucene,我有基于URL、正文、标题等的索引。我想基于URL搜索我的代码正在工作,但它只提供准确的URL匹配记录。例如: 记录1: 网址:http://example.com/example/index.php 内容:lucene和bla-bla中的示例很好 主持人:example.com 标题:欢迎来到示例 记录2: 网址:http://example.com/ 内容:示例是最佳解决方案之一 主办example.com 标题:欢迎来到示例 这是只给记录2,因为我的url是,所以如何通过url获得记录1和
Term term = new Term("URL", siteUrl.toLowerCase());
Query query1 = new TermQuery(term);
BooleanQuery booleanQuery.add(query1,BooleanClause.Occur.MUST);
TopDocs hits = is.search(booleanQuery, 50000);
索引代码
private Document createLuceneDocument(HTMLDocument htmlDocument)
{
Document document = new Document();
document.add(new Field("URL", htmlDocument.getUrl().toLowerCase(), Field.Store.YES,Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS));
return document;
}
TermQuery只进行精确匹配。这是最简单的一种搜索。还有另一种称为PrefixQuery的查询,它将匹配以指定值开头的字段。这就是你要找的吗?如果要在URL的任何部分进行匹配,则需要将URL拆分并在单独的字段中为组件编制索引,或者使用可以在索引(和搜索)过程中有效执行此操作的分析器