Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在lucene中基于url获取记录_Java_Lucene - Fatal编程技术网

Java 如何在lucene中基于url获取记录

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和

我有基于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,因为 一部分

我的搜索代码->

                 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拆分并在单独的字段中为组件编制索引,或者使用可以在索引(和搜索)过程中有效执行此操作的分析器