All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qwazr.search.analysis.PayloadBoostBm25Similarity Maven / Gradle / Ivy

Go to download

A Search Engine microservice with indexing and search features based on Apache Lucene

There is a newer version: 1.5.2
Show newest version
/*
 * Copyright 2015-2017 Emmanuel Keller / QWAZR
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * 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 com.qwazr.search.analysis;

import org.apache.lucene.search.similarities.BM25Similarity;
import org.apache.lucene.util.BytesRef;

public class PayloadBoostBm25Similarity extends BM25Similarity {

	private final float[] boosts;

	public PayloadBoostBm25Similarity(float... boosts) {
		this.boosts = boosts;
	}

	protected float scorePayload(int doc, int start, int end, BytesRef payload) {
		if (payload == null)
			return 1F;
		final int pos = payload.bytes[payload.offset];
		return boosts[pos];
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy