当前位置: 首页 > news >正文

搜索网站存在的关键字知名网站建设

搜索网站存在的关键字,知名网站建设,福州小学网站建设,做外贸生意最好的网站下面给出 可直接拷贝运行 的 Lucene 8.5.0 示例,演示 TwoPhaseIterator 两阶段验证 的完整流程。场景:使用 PhraseQuery(短语查询),它天然携带 TwoPhaseIterator,第一阶段通过倒排表拿到“候选文档”&#…

下面给出 可直接拷贝运行 的 Lucene 8.5.0 示例,演示 TwoPhaseIterator 两阶段验证 的完整流程。

 

场景:使用 `PhraseQuery`(短语查询),它天然携带 `TwoPhaseIterator`,第一阶段通过倒排表拿到“候选文档”,第二阶段验证 词间距与顺序。

 

---

 

1. 依赖(Maven)

 

```xml

<dependencies>

  <dependency>

    <groupId>org.apache.lucene</groupId>

    <artifactId>lucene-core</artifactId>

    <version>8.5.0</version>

  </dependency>

  <dependency>

    <groupId>org.apache.lucene</groupId>

    <artifactId>lucene-analyzers-common</artifactId>

    <version>8.5.0</version>

  </dependency>

</dependencies>

```

 

---

 

2. 完整代码

 

```java

package demo;

 

import org.apache.lucene.analysis.standard.StandardAnalyzer;

import org.apache.lucene.document.Document;

import org.apache.lucene.document.TextField;

import org.apache.lucene.index.*;

import org.apache.lucene.search.*;

import org.apache.lucene.store.ByteBuffersDirectory;

import org.apache.lucene.util.Bits;

 

public class TwoPhaseDemo {

    public static void main(String[] args) throws Exception {

        // 1. 建立索引

        ByteBuffersDirectory dir = new ByteBuffersDirectory();

        IndexWriterConfig cfg = new IndexWriterConfig(new StandardAnalyzer());

        IndexWriter w = new IndexWriter(dir, cfg);

 

        // 文档 1:短语完全匹配

        Document doc1 = new Document();

        doc1.add(new TextField("body", "lucene is a powerful search engine", Field.Store.YES));

        w.addDocument(doc1);

 

        // 文档 2:包含单词但顺序颠倒,短语不匹配

        Document doc2 = new Document();

        doc2.add(new TextField("body", "search lucene engine is powerful", Field.Store.YES));

        w.addDocument(doc2);

 

        w.commit();

        w.close();

 

        // 2. 打开读取器

        IndexReader reader = DirectoryReader.open(dir);

        IndexSearcher searcher = new IndexSearcher(reader);

 

        // 3. 构建 PhraseQuery(短语查询)

        PhraseQuery query = new PhraseQuery.Builder()

                .add(new Term("body", "lucene"))

                .add(new Term("body", "search"))

                .setSlop(1) // 允许 1 个词间距

                .build();

 

        // 4. 获取 Weight 与 Scorer

        Weight weight = searcher.createWeight(query, ScoreMode.COMPLETE, 1.0f);

        LeafReaderContext ctx = reader.leaves().get(0);

        Scorer scorer = weight.scorer(ctx);

 

        // 5. 两阶段遍历

        if (scorer == null) {

            System.out.println("无匹配文档");

            return;

        }

 

        TwoPhaseIterator twoPhase = scorer.twoPhaseIterator();

        if (twoPhase != null) {

            DocIdSetIterator approx = twoPhase.approximation();

            int doc;

            while ((doc = approx.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {

                // 第一阶段:倒排表快速筛选候选

                System.out.println("候选文档 doc=" + doc);

 

                // 第二阶段:精确验证短语是否满足

                if (twoPhase.matches()) {

                    Document d = searcher.doc(doc);

                    System.out.println("✅ 通过二次验证 -> " + d.get("body"));

                } else {

                    System.out.println("❌ 未通过二次验证");

                }

            }

        }

 

        reader.close();

        dir.close();

    }

}

```

 

---

 

3. 运行结果(示例)

 

```

候选文档 doc=0

✅ 通过二次验证 -> lucene is a powerful search engine

候选文档 doc=1

❌ 未通过二次验证

```

 

---

 

4. 关键点

 

- 第一阶段:`approximation().nextDoc()` 只检查两词是否都出现过(倒排表)。  

- 第二阶段:`twoPhase.matches()` 才检查 顺序 + 间距 是否满足短语规则。  

- TwoPhaseIterator 正是 Lucene 实现“先粗筛后精筛”的核心机制。

http://www.dtcms.com/a/402177.html

相关文章:

  • 企业网站建站费用WordPress自动readmore
  • chrome网站开发插件好口碑关键词优化地址
  • 做网站开发的有外快嘛wordpress 自己写js
  • 动画素材网站站酷海报设计图片
  • 网站排名前十网站开发背景意义
  • 成都微信网站建设推广青州建设局网站
  • xp系统中做网站服务器吗wordpress怎么放视频
  • 网站的一般制作流程网站外链多的危害
  • 企业网站用个人备案服装公司网站建设
  • 榆林市城乡建设规划局网站北京商场排名
  • 正规网站建设公司一般要多少钱socks5免费代理地址
  • 天津百度seo推广seo搜索引擎优化技术
  • 嘉定南翔网站建设用帝国做网站怎么样
  • 网站注册都需要什么wordpress彩虹条代码
  • 网站开发环境集成安装包建设一个电商网站的步骤
  • 建网站石家庄成都专业制作网站公司
  • 上海商地网站建设公司莱州网站建设价格
  • wordpress 内容 只调图片大小网站seo优化效果
  • 泰安手机网站建设公司工装公司十大排名
  • 艺腾青岛网站建设产品做网站
  • 网站xml人才网站建设经费用途
  • 如何对网站进行推广大良建设网站
  • 网站中文章内图片做超链接即时设计网页
  • 电子毕业设计网站建设WordPress配置全站加速cdn
  • 南宁住房和城乡建设局网站win2012服务器网站建设
  • 网站建设教程asp网站如何做词
  • 凡科建站登录入口官方为啥浏览器打不开网页
  • 阿里网站建设需要准备什么软件专业网站建设找哪家
  • 青岛网站建设青岛有口碑的郑州网站建设
  • 网站建设项目的预算辽宁省建设厅网站更新