[ https://issues.apache.org/jira/browse/LUCENE-9609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
WangFeiCheng updated LUCENE-9609: --------------------------------- Description: I noticed that when there are too many terms, the highlighted query is restricted I know that in TermInSetQuery, when there are fewer entries, please use BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD = 16 to improve query efficiency {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} 我想问一下,为什么要说“所以同样,我们为了保护荧光笔而隐藏了它的术语” 为什么这个阈值可以保护重点,以及如何实现这种“保护”? > 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 > Priority: Minor > > I noticed that when there are too many terms, the highlighted query is > restricted > I know that in TermInSetQuery, when there are fewer entries, please use > BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD = 16 to improve query efficiency > {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