PhraseQuery

PhraseQuery 用于搜索一系列术语。以下匹配短语 Hello World(在用 StandardAnalyzer 索引之后)

Query query = new PhraseQuery.Builder()
        .add(new Term("text", "hello"))
        .add(new Term("text", "world"))
        .build();

通过使用 setSlop 设置最大编辑距离 ,PhraseQuery 还可以处理查询中的 slop 或额外术语。这将匹配 Lorem ipsum sit amet dolor

Query query = new PhraseQuery.Builder()
        .add(new Term("text", "lorem"))
        .add(new Term("text", "amet"))
        .setSlop(2)
        .build();

你还可以设置精确的位置增量:

Query query = new PhraseQuery.Builder()
        .add(new Term("text", "lorem"), 0)
        .add(new Term("text", "sit"), 2)
        .add(new Term("text", "dolor"), 4)
        .build();