
com.fnklabs.draenei.analytics.search.SearchJob Maven / Gradle / Ivy
package com.fnklabs.draenei.analytics.search;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cache.CachePeekMode;
import org.apache.ignite.compute.ComputeJobAdapter;
import org.apache.ignite.resources.IgniteInstanceResource;
import javax.cache.Cache;
import java.util.HashSet;
import java.util.Set;
class SearchJob extends ComputeJobAdapter {
private Ignite ignite;
private final Set searchFacets;
SearchJob(Set searchFacets) {
this.searchFacets = searchFacets;
}
@Override
public Set execute() throws IgniteException {
IgniteCache cache = ignite.getOrCreateCache(SearchServiceImpl.getDocumentIndexCacheConfiguration());
Iterable> localEntries = cache.localEntries(CachePeekMode.PRIMARY);
Set result = new HashSet<>();
localEntries.forEach(localEntry -> {
searchFacets.forEach(searchFacet -> {
DocumentIndex documentIndex = localEntry.getValue();
boolean anyMatch = documentIndex.getFacets()
.stream()
.anyMatch(facet -> facet.getKey().equals(searchFacet.getKey()));
if (anyMatch) {
result.add(documentIndex);
}
});
});
return result;
}
@IgniteInstanceResource
protected void setIgnite(Ignite ignite) {
this.ignite = ignite;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy