rmuir commented on issue #12176: URL: https://github.com/apache/lucene/issues/12176#issuecomment-1460989224
so, one thing is, Terms.intersect() works across a single field. and you definitely have to sort before adding terms to DaciukMihov (but then it works in linear time). Sounds like you are currently just "blasting" and not using the `seekCeil` aka "ping-pong intersection" that TermInSetQuery does. The advantage Terms.intersect has over such a "ping-pong" intersection, is that the terms dictionary implementation can intersect the list of terms faster... without hitting the disk as much. I think it makes better use of blocktree's index structure. IIRC it basically made term intersection for a lot of queries 2x faster than "ping-pong" because of this. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org