use of datawave.ingest.protobuf.TermWeightPosition in project datawave by NationalSecurityAgency.
the class ContentFunctionsTest method testEvaluationNoContentFields.
/**
* Same as testEvaluation1, however the term frequency list marks teh fields as non-content expansion fields and hence we expect no results
*/
@Test
public void testEvaluationNoContentFields() {
String query = buildFunction(ContentFunctions.CONTENT_WITHIN_FUNCTION_NAME, "1", Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, "'dog'", "'cat'");
Expression expr = engine.createExpression(query);
List<TermWeightPosition> list1, list2;
list1 = asList(Arrays.asList(1, 2, 3), Arrays.asList(0, 0, 0));
// match (7-3_ should match (3+1)
list2 = asList(Arrays.asList(5, 6, 7), Arrays.asList(0, 0, 3));
termOffSetMap.put("dog", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", false, eventId), list1)));
termOffSetMap.put("cat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", false, eventId), list2)));
context.set(Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, termOffSetMap);
Object o = expr.evaluate(context);
Assert.assertTrue(expect(o, false));
}
use of datawave.ingest.protobuf.TermWeightPosition in project datawave by NationalSecurityAgency.
the class ContentFunctionsTest method testEvaluationPhraseTermOverlapPass2.
@Test
public void testEvaluationPhraseTermOverlapPass2() {
String query = buildFunction(phraseFunction, Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, "'cat'", "'rat'", "'dog'");
Expression expr = engine.createExpression(query);
List<TermWeightPosition> list1, list2, list3;
// cat
list1 = asList(1);
// rat
list2 = asList(1);
// dog
list3 = asList(2);
termOffSetMap.put("cat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list1)));
termOffSetMap.put("rat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list2)));
termOffSetMap.put("dog", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list3)));
context.set(Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, termOffSetMap);
Object o = expr.evaluate(context);
Assert.assertTrue(expect(o, true));
}
use of datawave.ingest.protobuf.TermWeightPosition in project datawave by NationalSecurityAgency.
the class ContentFunctionsTest method testEvaluationPhraseBasic3WithSkips.
@Test
public void testEvaluationPhraseBasic3WithSkips() {
String query = buildFunction(ContentFunctions.CONTENT_PHRASE_FUNCTION_NAME, Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, "'dog'", "'cat'", "'fish'");
Expression expr = engine.createExpression(query);
List<TermWeightPosition> list1, list2, list3;
list1 = asList(Arrays.asList(1), Arrays.asList(0));
// ~3-5
list2 = asList(Arrays.asList(3), Arrays.asList(1));
list3 = asList(Arrays.asList(4, 10), Arrays.asList(0, 0));
termOffSetMap.put("dog", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list1)));
termOffSetMap.put("cat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list2)));
termOffSetMap.put("fish", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list3)));
context.set(Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, termOffSetMap);
Object o = expr.evaluate(context);
Assert.assertTrue(expect(o, true));
}
use of datawave.ingest.protobuf.TermWeightPosition in project datawave by NationalSecurityAgency.
the class ContentFunctionsTest method testEvaluationPhraseTermOverlapPass3.
@Test
public void testEvaluationPhraseTermOverlapPass3() {
String query = buildFunction(phraseFunction, Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, "'cat'", "'rat'");
Expression expr = engine.createExpression(query);
List<TermWeightPosition> list1, list2;
// cat
list1 = asList(1);
// rat
list2 = asList(1, 5);
termOffSetMap.put("cat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list1)));
termOffSetMap.put("rat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list2)));
context.set(Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, termOffSetMap);
Object o = expr.evaluate(context);
Assert.assertTrue(expect(o, true));
}
use of datawave.ingest.protobuf.TermWeightPosition in project datawave by NationalSecurityAgency.
the class ContentFunctionsTest method testEvaluationAdjacencySameTermFailureTest.
@Test
public void testEvaluationAdjacencySameTermFailureTest() {
String query = buildFunction(ContentFunctions.CONTENT_WITHIN_FUNCTION_NAME, "2", Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, "'cat'", "'cat'");
Expression expr = engine.createExpression(query);
List<TermWeightPosition> list1;
list1 = asList(1, 4);
termOffSetMap.put("cat", new TermFrequencyList(Maps.immutableEntry(new Zone("CONTENT", true, eventId), list1)));
context.set(Constants.TERM_OFFSET_MAP_JEXL_VARIABLE_NAME, termOffSetMap);
Object o = expr.evaluate(context);
Assert.assertTrue(expect(o, false));
}
Aggregations