mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-11 09:58:28 +00:00
fix: add includeInvalidated option to search queries to optionally show invalidated statements (#73)
This commit is contained in:
parent
15d04fb577
commit
e89e7c1024
@ -18,15 +18,15 @@ export async function performBM25Search(
|
|||||||
|
|
||||||
// Build the WHERE clause based on timeframe options
|
// Build the WHERE clause based on timeframe options
|
||||||
let timeframeCondition = `
|
let timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${options.includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// If startTime is provided, add condition to filter by validAt >= startTime
|
// If startTime is provided, add condition to filter by validAt >= startTime
|
||||||
if (options.startTime) {
|
if (options.startTime) {
|
||||||
timeframeCondition = `
|
timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${options.includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
AND s.validAt >= $startTime
|
AND s.validAt >= $startTime
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -108,15 +108,15 @@ export async function performVectorSearch(
|
|||||||
try {
|
try {
|
||||||
// Build the WHERE clause based on timeframe options
|
// Build the WHERE clause based on timeframe options
|
||||||
let timeframeCondition = `
|
let timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${options.includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// If startTime is provided, add condition to filter by validAt >= startTime
|
// If startTime is provided, add condition to filter by validAt >= startTime
|
||||||
if (options.startTime) {
|
if (options.startTime) {
|
||||||
timeframeCondition = `
|
timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${options.includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
AND s.validAt >= $startTime
|
AND s.validAt >= $startTime
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -135,7 +135,7 @@ export async function performVectorSearch(
|
|||||||
YIELD node AS s, score
|
YIELD node AS s, score
|
||||||
WHERE s.userId = $userId
|
WHERE s.userId = $userId
|
||||||
AND score >= 0.7
|
AND score >= 0.7
|
||||||
${timeframeCondition.replace("AND", "AND").replace("WHERE", "AND")}
|
${timeframeCondition}
|
||||||
${spaceCondition}
|
${spaceCondition}
|
||||||
OPTIONAL MATCH (episode:Episode)-[:HAS_PROVENANCE]->(s)
|
OPTIONAL MATCH (episode:Episode)-[:HAS_PROVENANCE]->(s)
|
||||||
WITH s, score, count(episode) as provenanceCount
|
WITH s, score, count(episode) as provenanceCount
|
||||||
@ -219,14 +219,14 @@ export async function bfsTraversal(
|
|||||||
// Build the WHERE clause based on timeframe options
|
// Build the WHERE clause based on timeframe options
|
||||||
let timeframeCondition = `
|
let timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// If startTime is provided, add condition to filter by validAt >= startTime
|
// If startTime is provided, add condition to filter by validAt >= startTime
|
||||||
if (startTime) {
|
if (startTime) {
|
||||||
timeframeCondition = `
|
timeframeCondition = `
|
||||||
AND s.validAt <= $validAt
|
AND s.validAt <= $validAt
|
||||||
AND (s.invalidAt > $validAt)
|
${includeInvalidated ? '' : 'AND (s.invalidAt IS NULL OR s.invalidAt > $validAt)'}
|
||||||
AND s.validAt >= $startTime
|
AND s.validAt >= $startTime
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@ -243,10 +243,9 @@ export async function bfsTraversal(
|
|||||||
// This query implements BFS up to maxDepth and collects all statements along the way
|
// This query implements BFS up to maxDepth and collects all statements along the way
|
||||||
const cypher = `
|
const cypher = `
|
||||||
MATCH (e:Entity {uuid: $startEntityId})<-[:HAS_SUBJECT|HAS_OBJECT|HAS_PREDICATE]-(s:Statement)
|
MATCH (e:Entity {uuid: $startEntityId})<-[:HAS_SUBJECT|HAS_OBJECT|HAS_PREDICATE]-(s:Statement)
|
||||||
WHERE
|
WHERE
|
||||||
(s.userId = $userId)
|
(s.userId = $userId)
|
||||||
AND ($includeInvalidated OR s.invalidAt IS NULL)
|
${includeInvalidated ? 'AND s.validAt <= $validAt' : timeframeCondition}
|
||||||
${timeframeCondition}
|
|
||||||
${spaceCondition}
|
${spaceCondition}
|
||||||
RETURN s as statement
|
RETURN s as statement
|
||||||
`;
|
`;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user