cache.put(1, wrapper1); //todo how do we index if the key is a byte array?
cache.put(2, wrapper2);
SearchManager qf = Search.getSearchManager(cache);
SearchFactoryImplementor searchFactory = (SearchFactoryImplementor) qf.getSearchFactory();
assertNotNull(searchFactory.getIndexManagerHolder().getIndexManager(ProtobufValueWrapper.class.getName()));
Query luceneQuery = qf.buildQueryBuilderForClass(ProtobufValueWrapper.class)
.get()
.keyword()
.onField("name")
.ignoreFieldBridge() //todo [anistor] ignoring the field bridge is a shameless hack!
.matching("Adrian")
.createQuery();
List<Object> list = qf.getQuery(luceneQuery).list();
assertEquals(1, list.size());
// the alternative ....
QueryBuilder guestQueryBuilder = searchFactory.buildQueryBuilder().forEntity(ProtobufValueWrapper.class).get();
Query queryAllGuests = guestQueryBuilder
.keyword()
.onField("name")
.ignoreFieldBridge() //todo [anistor] ignoring the field bridge is a shameless hack!
.matching("Adrian")
.createQuery();
List<EntityInfo> queryEntityInfos = searchFactory.createHSQuery().luceneQuery(queryAllGuests)
.targetedEntities(Arrays.asList(new Class<?>[]{ProtobufValueWrapper.class}))
.projection("surname")
.queryEntityInfos();
assertEquals(1, queryEntityInfos.size());