use of edu.uci.ics.textdb.exp.source.scan.ScanBasedSourceOperator in project textdb by TextDB.
the class KeywordTestHelper method getScanSourceResults.
public static List<Tuple> getScanSourceResults(String tableName, String keywordQuery, List<String> attributeNames, KeywordMatchingType matchingType, int limit, int offset) throws TextDBException {
RelationManager relationManager = RelationManager.getRelationManager();
ScanBasedSourceOperator scanSource = new ScanBasedSourceOperator(new ScanSourcePredicate(tableName));
KeywordPredicate keywordPredicate = new KeywordPredicate(keywordQuery, attributeNames, relationManager.getTableAnalyzerString(tableName), matchingType, RESULTS, limit, offset);
KeywordMatcher keywordMatcher = new KeywordMatcher(keywordPredicate);
keywordMatcher.setInputOperator(scanSource);
Tuple tuple;
List<Tuple> results = new ArrayList<>();
keywordMatcher.open();
while ((tuple = keywordMatcher.getNextTuple()) != null) {
results.add(tuple);
}
keywordMatcher.close();
return results;
}
use of edu.uci.ics.textdb.exp.source.scan.ScanBasedSourceOperator in project textdb by TextDB.
the class NlpEntityTest method getQueryResults.
public List<Tuple> getQueryResults(String tableName, List<String> attributeNames, NlpEntityType nlpEntityType, int limit, int offset) throws Exception {
ScanBasedSourceOperator scanSource = new ScanBasedSourceOperator(new ScanSourcePredicate(tableName));
NlpEntityPredicate nlpEntityPredicate = new NlpEntityPredicate(nlpEntityType, attributeNames, RESULTS);
NlpEntityOperator nlpEntityOperator = new NlpEntityOperator(nlpEntityPredicate);
nlpEntityOperator.setInputOperator(scanSource);
nlpEntityOperator.setLimit(limit);
nlpEntityOperator.setOffset(offset);
Tuple nextTuple = null;
List<Tuple> results = new ArrayList<Tuple>();
nlpEntityOperator.open();
while ((nextTuple = nlpEntityOperator.getNextTuple()) != null) {
results.add(nextTuple);
}
nlpEntityOperator.close();
return results;
}
use of edu.uci.ics.textdb.exp.source.scan.ScanBasedSourceOperator in project textdb by TextDB.
the class ProjectionOperatorTest method testProjection1.
@Test
public void testProjection1() throws Exception {
List<String> projectionFields = Arrays.asList(TestConstants.DESCRIPTION);
Schema projectionSchema = new Schema(TestConstants.DESCRIPTION_ATTR);
IField[] fields1 = { new TextField("Tall Angry") };
IField[] fields2 = { new TextField("Short Brown") };
IField[] fields3 = { new TextField("White Angry") };
IField[] fields4 = { new TextField("Lin Clooney is Short and lin clooney is Angry") };
IField[] fields5 = { new TextField("Tall Fair") };
IField[] fields6 = { new TextField("Short angry") };
Tuple tuple1 = new Tuple(projectionSchema, fields1);
Tuple tuple2 = new Tuple(projectionSchema, fields2);
Tuple tuple3 = new Tuple(projectionSchema, fields3);
Tuple tuple4 = new Tuple(projectionSchema, fields4);
Tuple tuple5 = new Tuple(projectionSchema, fields5);
Tuple tuple6 = new Tuple(projectionSchema, fields6);
List<Tuple> expectedResults = Arrays.asList(tuple1, tuple2, tuple3, tuple4, tuple5, tuple6);
List<Tuple> returnedResults = getProjectionResults(new ScanBasedSourceOperator(new ScanSourcePredicate(PEOPLE_TABLE)), projectionFields);
Assert.assertTrue(TestUtils.equals(expectedResults, returnedResults));
}
use of edu.uci.ics.textdb.exp.source.scan.ScanBasedSourceOperator in project textdb by TextDB.
the class DictionaryMatcherTestHelper method getScanSourceResults.
/**
* Get the results from a DictionaryMatcher with a ScanSource Operator
* (which scans the table first and then feeds the data into the dictionary matcher)
*
* @param tableName
* @param dictionary
* @param attributeNames
* @param matchingType
* @param limit
* @param offset
* @return
* @throws TextDBException
*/
public static List<Tuple> getScanSourceResults(String tableName, Dictionary dictionary, List<String> attributeNames, KeywordMatchingType matchingType, int limit, int offset) throws TextDBException {
RelationManager relationManager = RelationManager.getRelationManager();
String luceneAnalyzerStr = relationManager.getTableAnalyzerString(tableName);
ScanBasedSourceOperator scanSource = new ScanBasedSourceOperator(new ScanSourcePredicate(tableName));
DictionaryPredicate dictiaonryPredicate = new DictionaryPredicate(dictionary, attributeNames, luceneAnalyzerStr, matchingType, RESULTS);
DictionaryMatcher dictionaryMatcher = new DictionaryMatcher(dictiaonryPredicate);
dictionaryMatcher.setLimit(limit);
dictionaryMatcher.setOffset(offset);
dictionaryMatcher.setInputOperator(scanSource);
Tuple tuple;
List<Tuple> results = new ArrayList<>();
dictionaryMatcher.open();
while ((tuple = dictionaryMatcher.getNextTuple()) != null) {
results.add(tuple);
}
dictionaryMatcher.close();
return results;
}
use of edu.uci.ics.textdb.exp.source.scan.ScanBasedSourceOperator in project textdb by TextDB.
the class FuzzyTokenMatcherTestHelper method getScanSourceResults.
/*
* Gets the query results by scanning the table and passing the data into a FuzzyTokenMatcher.
*/
public static List<Tuple> getScanSourceResults(String tableName, String query, double threshold, List<String> attributeNames, int limit, int offset) throws TextDBException {
ScanBasedSourceOperator scanSource = new ScanBasedSourceOperator(new ScanSourcePredicate(tableName));
FuzzyTokenPredicate fuzzyTokenPredicate = new FuzzyTokenPredicate(query, attributeNames, RelationManager.getRelationManager().getTableAnalyzerString(tableName), threshold, RESULTS);
FuzzyTokenMatcher fuzzyTokenMatcher = new FuzzyTokenMatcher(fuzzyTokenPredicate);
fuzzyTokenMatcher.setLimit(limit);
fuzzyTokenMatcher.setOffset(offset);
fuzzyTokenMatcher.setInputOperator(scanSource);
Tuple tuple;
List<Tuple> results = new ArrayList<>();
fuzzyTokenMatcher.open();
while ((tuple = fuzzyTokenMatcher.getNextTuple()) != null) {
results.add(tuple);
}
fuzzyTokenMatcher.close();
return results;
}
Aggregations