You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by GitBox <gi...@apache.org> on 2022/05/31 11:03:11 UTC

[GitHub] [lucene] kaivalnp commented on a diff in pull request #932: LUCENE-10559: Add Prefilter Option to KnnGraphTester

kaivalnp commented on code in PR #932:
URL: https://github.com/apache/lucene/pull/932#discussion_r885501069


##########
lucene/core/src/test/org/apache/lucene/util/hnsw/KnnGraphTester.java:
##########
@@ -730,4 +774,79 @@ protected int comparePivot(int j) {
       return Float.compare(score[pivot], score[j]);
     }
   }
+
+  private static class SelectiveQuery extends Query {
+
+    public float selectivity = 1f;
+    private FixedBitSet selectedBits;
+    private long cost;
+
+    public void createBitSet(int numDocs) {
+      selectedBits = new FixedBitSet(numDocs);
+      if (selectivity == 1f) {
+        selectedBits.set(0, numDocs);
+        cost = numDocs;
+      } else {
+        selectedBits.clear(0, numDocs);
+        cost = 0;
+        for (int i = 0; i < numDocs; i++) {
+          if (Math.random() < selectivity) {
+            selectedBits.set(i);
+            cost++;
+          }
+        }
+      }
+    }
+
+    @Override
+    public String toString(String field) {
+      return "SelectiveQuery[" + selectivity + "]";
+    }
+
+    @Override
+    public void visit(QueryVisitor visitor) {
+      visitor.visitLeaf(this);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+      return obj instanceof SelectiveQuery && obj.hashCode() == this.hashCode();

Review Comment:
   Thanks! Makes sense to cast and add this additional equality check



-- 
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-unsubscribe@lucene.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org