logic: Add node type filtering to SearchIndex to avoid low or no results for filters

This commit is contained in:
Eberhard Graether
2017-09-07 01:40:20 +02:00
parent a9ca7f1223
commit 3c8cd26846
4 changed files with 67 additions and 66 deletions
+7 -7
View File
@@ -12,7 +12,7 @@ public:
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
std::vector<SearchResult> results = index.search("oo", 0, 0);
TS_ASSERT_EQUALS(1, results.size());
TS_ASSERT_EQUALS(1, results[0].elementIds.size());
@@ -24,7 +24,7 @@ public:
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
std::vector<SearchResult> results = index.search("oo", 0, 0);
TS_ASSERT_EQUALS(1, results.size());
TS_ASSERT_EQUALS(2, results[0].indices.size());
@@ -38,7 +38,7 @@ public:
index.addNode(1, NameHierarchy::deserialize("::\tmfor\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmfos\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("fo", 0);
std::vector<SearchResult> results = index.search("fo", 0, 0);
TS_ASSERT_EQUALS(2, results.size());
TS_ASSERT_EQUALS(1, results[0].elementIds.size());
@@ -53,7 +53,7 @@ public:
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
index.clear();
std::vector<SearchResult> results = index.search("oo", 0);
std::vector<SearchResult> results = index.search("oo", 0, 0);
TS_ASSERT_EQUALS(0, results.size());
}
@@ -64,7 +64,7 @@ public:
index.addNode(1, NameHierarchy::deserialize("::\tmfoo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmfoo2\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 1);
std::vector<SearchResult> results = index.search("oo", 0, 1);
TS_ASSERT_EQUALS(1, results.size());
}
@@ -75,7 +75,7 @@ public:
index.addNode(1, NameHierarchy::deserialize("::\tmfoo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmFOO2\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
std::vector<SearchResult> results = index.search("oo", 0, 0);
TS_ASSERT_EQUALS(2, results.size());
}
@@ -87,7 +87,7 @@ public:
index.addNode(1, NameHierarchy::deserialize("::\tmoaabbcc\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmocbcabc\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("abc", 0);
std::vector<SearchResult> results = index.search("abc", 0, 0);
TS_ASSERT_EQUALS(2, results.size());
TS_ASSERT_EQUALS("ocbcabc", results[0].text);