WangFeiCheng created LUCENE-9609: ------------------------------------ Summary: When the term of more than 16, highlight the query does not return Key: LUCENE-9609 URL: https://issues.apache.org/jira/browse/LUCENE-9609 Project: Lucene - Core Issue Type: Wish Components: core/search Affects Versions: 7.7.3 Reporter: WangFeiCheng
我注意到,当术语过多时,突出显示的查询受到限制 我知道在TermInSetQuery中,当词条较少时,请使用BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD = 16来提高查询效率 {code:java} 静态最终整数BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD = 16; 公共查询重写(IndexReader阅读器)引发IOException { 最终int阈值= Math.min(BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD,BooleanQuery.getMaxClauseCount()); 如果(termData.size()<=阈值){ BooleanQuery.Builder bq =新的BooleanQuery.Builder(); TermIterator迭代器= termData.iterator(); for(BytesRef term = iterator.next(); term!= null; term = iterator.next()){ bq.add(new TermQuery(new Term(iterator.field(),BytesRef.deepCopyOf(term))),Occur.SHOULD); } 返回新的ConstantScoreQuery(bq.build()); } 返回super.rewrite(reader); } {code} 但是,在extractTerms中使用TermInSetQuery方法时,查询条件的重点超过16个 {code:java} @Override public void extractTerms(Set <Term>术语){ //无操作 //此查询用于术语数量过多而无法使用的滥用情况 //作为BooleanQuery有效运行。因此,我们同样将其术语隐藏在 //为了保护荧光笔 } {code} 我想问一下,为什么要说“所以同样,我们为了保护荧光笔而隐藏了它的术语” 为什么这个阈值可以保护重点,以及如何实现这种“保护”? -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org