Java tutorial
/* * Licensed to Aduna under one or more contributor license agreements. * See the NOTICE.txt file distributed with this work for additional * information regarding copyright ownership. * * Aduna licenses this file to you under the terms of the Aduna BSD * License (the "License"); you may not use this file except in compliance * with the License. See the LICENSE.txt file distributed with this work * for the full License. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing permissions * and limitations under the License. */ package org.openrdf.sail.elasticsearch; import java.util.Arrays; import org.elasticsearch.common.text.Text; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.highlight.HighlightField; import org.openrdf.sail.lucene.DocumentScore; import org.openrdf.sail.lucene.SearchFields; import com.google.common.base.Function; import com.google.common.collect.Iterables; import com.spatial4j.core.context.SpatialContext; public class ElasticsearchDocumentScore extends ElasticsearchDocumentResult implements DocumentScore { public ElasticsearchDocumentScore(SearchHit hit, Function<? super String, ? extends SpatialContext> geoContextMapper) { super(hit, geoContextMapper); } @Override public float getScore() { return hit.getScore(); } @Override public boolean isHighlighted() { return (hit.getHighlightFields() != null); } @Override public Iterable<String> getSnippets(String field) { HighlightField highlightField = hit.getHighlightFields().get(field); if (highlightField == null) { return null; } return Iterables.transform(Arrays.asList(highlightField.getFragments()), new Function<Text, String>() { @Override public String apply(Text fragment) { return SearchFields.getSnippet(fragment.string()); } }); } }