gpt4 book ai didi

Lucene:构建单个术语的查询

转载 作者:行者123 更新时间:2023-12-02 07:14:42 25 4
gpt4 key购买 nike

我是 Lucene 的新手,我想知道

之间有什么区别(如果有的话)
PhraseQuery.add(Term1)
PhraseQuery.add(Term2)
PhraseQuery.add(Term3)

term1 = new TermQuery(new Term(...));
booleanQuery.add(term1, BooleanClause.Occur.SHOULD);

term2 = new TermQuery(new Term(...));
booleanQuery.add(term2, BooleanClause.Occur.SHOULD);

term3 = new TermQuery(new Term(...));
booleanQuery.add(term3, BooleanClause.Occur.SHOULD);

最佳答案

  • PhraseQuery 要求所有术语都存在于正在搜索的字段中。
  • 您的 BooleanQuery 并不要求所有术语都存在。

这引出了一个问题:您的 PhraseQuery 和:

term1 = new TermQuery(new Term(...));
booleanQuery.add(term1, BooleanClause.Occur.MUST);

term2 = new TermQuery(new Term(...));
booleanQuery.add(term2, BooleanClause.Occur.MUST);

term3 = new TermQuery(new Term(...));
booleanQuery.add(term3, BooleanClause.Occur.MUST);

此处的区别在于,PhraseQuery 要求术语的顺序正确,而 BooleanQuery 则没有任何特定的顺序要求。

关于Lucene:构建单个术语的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com