use of com.yahoo.prelude.query.NearItem in project vespa by vespa-engine.
the class NearConverter method itemToForm.
@Override
public DispatchForm itemToForm(Item item, ItemIdMapper itemIdMapper) {
DispatchForm dispatchForm = super.itemToForm(item, itemIdMapper);
NearItem nearItem = (NearItem) item;
dispatchForm.setProperty(distanceProperty, nearItem.getDistance());
return dispatchForm;
}
use of com.yahoo.prelude.query.NearItem in project vespa by vespa-engine.
the class ItemEncodingTestCase method testNearItemEncoding.
@Test
public void testNearItemEncoding() {
WordItem a = new WordItem("a");
WordItem b = new WordItem("b");
NearItem near = new NearItem(7);
near.addItem(a);
near.addItem(b);
ByteBuffer buffer = ByteBuffer.allocate(128);
int count = near.encode(buffer);
buffer.flip();
assertEquals("Serialization count", 3, count);
assertType(buffer, 11, 0);
assertEquals("Near arity", 2, buffer.get());
assertEquals("Limit", 7, buffer.get());
assertWord(buffer, "a");
assertWord(buffer, "b");
}
use of com.yahoo.prelude.query.NearItem in project vespa by vespa-engine.
the class SerializeItemTestCase method serialize_near_item.
@Test
public void serialize_near_item() throws ParseException {
int distance = 23;
NearItem nearItem = new NearItem(distance);
{
nearItem.addItem(new WordItem("first"));
nearItem.addItem(new WordItem("second"));
}
NearItem deSerialized = serializeThenParse(nearItem);
assertThat(deSerialized.getDistance(), is(distance));
assertThat(deSerialized.getItemCount(), is(2));
}
use of com.yahoo.prelude.query.NearItem in project vespa by vespa-engine.
the class NearConverter method formToItem.
@Override
public Object formToItem(String name, ItemArguments arguments, ItemContext itemContext) {
NearItem nearItem = (NearItem) super.formToItem(name, arguments, itemContext);
setDistance(nearItem, arguments);
return nearItem;
}
use of com.yahoo.prelude.query.NearItem in project vespa by vespa-engine.
the class YqlParser method instantiateONearItem.
@NonNull
private Item instantiateONearItem(String field, OperatorNode<ExpressionOperator> ast) {
assertHasFunctionName(ast, ONEAR);
NearItem onear = new ONearItem();
onear.setIndexName(field);
for (OperatorNode<ExpressionOperator> word : ast.<List<OperatorNode<ExpressionOperator>>>getArgument(1)) {
onear.addItem(instantiateWordItem(field, word, onear.getClass()));
}
Integer distance = getAnnotation(ast, DISTANCE, Integer.class, null, "term distance for ONEAR operator");
if (distance != null) {
onear.setDistance(distance);
}
return onear;
}
Aggregations