当前位置: 首页>>代码示例>>Java>>正文


Java TermPositions.nextPosition方法代码示例

本文整理汇总了Java中org.apache.lucene.index.TermPositions.nextPosition方法的典型用法代码示例。如果您正苦于以下问题:Java TermPositions.nextPosition方法的具体用法?Java TermPositions.nextPosition怎么用?Java TermPositions.nextPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.lucene.index.TermPositions的用法示例。


在下文中一共展示了TermPositions.nextPosition方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: joinTermAllMatches

import org.apache.lucene.index.TermPositions; //导入方法依赖的package包/类
@Override
public Result joinTermAllMatches(Result result, TermPositions term,
		NodeDataBuffer previous, byte[] payloadBuffer,
		int[] positionsBuffer, TreeAxis axis, int termId) throws IOException {
	int freq = term.freq();
	int bufferPtr = 0;
	int validInstances = 0;

	for (int i = 0; i < freq && validInstances < NodeDataBuffer.BUFFER_SIZE; i++) {
		positionsBuffer[validInstances] = term.nextPosition();
		int position = positionsBuffer[validInstances];
		if (shouldLoadPayload(position, previous)) {
			bufferPtr = NodeDataBuffer.PAYLOAD_LENGTH * validInstances;
			term.getPayload(payloadBuffer, bufferPtr);
			boolean updatedValidInstanceFlag = false;
			for (int j = previous.size - 1; j >= 0
					&& validInstances < NodeDataBuffer.BUFFER_SIZE
					&& position <= previous.positions[j]; j--) {
				byte[] start = previous.getAsBytes(j);
				if (logic.joinBytesWithBytes(start, 0, payloadBuffer,
						bufferPtr)) {
					if (!updatedValidInstanceFlag) {
						validInstances++;
						updatedValidInstanceFlag = true;
					}
					byte[] end = getByteArray(payloadBuffer, bufferPtr);
					result.addNew(start, end, axis, termId);
				}
			}
		}
	}
	return result;
}
 
开发者ID:arne-cl,项目名称:fangorn,代码行数:34,代码来源:LastToFirstJoin.java

示例2: joinTerm

import org.apache.lucene.index.TermPositions; //导入方法依赖的package包/类
@Override
public int joinTerm(TermPositions term, NodeDataBuffer previous,
		byte[] payloadBuffer, int[] positionsBuffer,
		LookaheadOptimization optimization, boolean stopAtFirst)
		throws IOException {
	int freq = term.freq();
	int bufferPtr = 0;
	int validInstances = 0;
	int val;

	for (int i = 0; i < freq && validInstances < NodeDataBuffer.BUFFER_SIZE; i++) {
		term.nextPosition();
		bufferPtr = NodeDataBuffer.PAYLOAD_LENGTH * validInstances;
		term.getPayload(payloadBuffer, bufferPtr);
		val = LookaheadOptimization.WRITE;
		if (!optimization.equals(LookaheadOptimization.NONE)
				&& validInstances > 0) {
			val = optimization.check(payloadBuffer, validInstances - 1);
			if (val == LookaheadOptimization.IGNORE)
				continue;
		}
		for (int j = previous.size - 1; j >= 0
				&& validInstances < NodeDataBuffer.BUFFER_SIZE; j--) {
			if (logic.joinBufWithBytes(previous, j, payloadBuffer,
					bufferPtr)) {
				if (val == LookaheadOptimization.WRITE) {
					validInstances++;
				} else if (val == LookaheadOptimization.OVERWRITE) {
					overwritePrevPayloadBuf(payloadBuffer, validInstances);
				}
				if (stopAtFirst)
					return 1;
				break;
			}
		}
	}
	return validInstances;
}
 
开发者ID:arne-cl,项目名称:fangorn,代码行数:39,代码来源:LastToFirstJoin.java

示例3: joinTermAllMatches

import org.apache.lucene.index.TermPositions; //导入方法依赖的package包/类
@Override
public Result joinTermAllMatches(Result result, TermPositions term,
		NodeDataBuffer previous, byte[] payloadBuffer,
		int[] positionsBuffer, TreeAxis axis, int termId) throws IOException {
	int freq = term.freq();
	int bufferPtr = 0;
	int validInstances = 0;

	for (int i = 0; i < freq && validInstances < NodeDataBuffer.BUFFER_SIZE; i++) {
		positionsBuffer[validInstances] = term.nextPosition();
		int position = positionsBuffer[validInstances];
		if (shouldLoadPayload(position, previous)) {
			bufferPtr = NodeDataBuffer.PAYLOAD_LENGTH * validInstances;
			term.getPayload(payloadBuffer, bufferPtr);
			boolean updatedValidInstanceFlag = false;
			for (int j = 0; j < previous.size()
					&& validInstances < NodeDataBuffer.BUFFER_SIZE
					&& position >= previous.positions[j]; j++) {
				byte[] start = previous.getAsBytes(j);
				if (logic.joinBytesWithBytes(start, 0, payloadBuffer,
						bufferPtr)) {
					if (!updatedValidInstanceFlag) {
						validInstances++;
						updatedValidInstanceFlag = true;
					}
					byte[] end = getByteArray(payloadBuffer, bufferPtr);
					result.addNew(start, end, axis, termId);
				}
			}
		}
	}
	return result;
}
 
开发者ID:arne-cl,项目名称:fangorn,代码行数:34,代码来源:FirstToLastJoin.java

示例4: joinTerm

import org.apache.lucene.index.TermPositions; //导入方法依赖的package包/类
@Override
public int joinTerm(TermPositions term, NodeDataBuffer previous,
		byte[] payloadBuffer, int[] positionsBuffer,
		LookaheadOptimization optimization, boolean stopAtFirst)
		throws IOException {
	int freq = term.freq();
	int bufferPtr = 0;
	int validInstances = 0;
	int val;

	for (int i = 0; i < freq && validInstances < NodeDataBuffer.BUFFER_SIZE; i++) {
		term.nextPosition();
		bufferPtr = NodeDataBuffer.PAYLOAD_LENGTH * validInstances;
		term.getPayload(payloadBuffer, bufferPtr);
		val = LookaheadOptimization.WRITE;
		if (!optimization.equals(LookaheadOptimization.NONE)
				&& validInstances > 0) {
			val = optimization.check(payloadBuffer, validInstances - 1);
			if (val == LookaheadOptimization.IGNORE)
				continue;
		}
		for (int j = 0; j < previous.size()
				&& validInstances < NodeDataBuffer.BUFFER_SIZE; j++) {
			if (logic.joinBufWithBytes(previous, j, payloadBuffer,
					bufferPtr)) {
				if (val == LookaheadOptimization.WRITE) {
					validInstances++;
				} else if (val == LookaheadOptimization.OVERWRITE) {
					overwritePrevPayloadBuf(payloadBuffer, validInstances);
				}
				if (stopAtFirst)
					return 1;
				break;
			}
		}
	}
	return validInstances;
}
 
开发者ID:arne-cl,项目名称:fangorn,代码行数:39,代码来源:FirstToLastJoin.java


注:本文中的org.apache.lucene.index.TermPositions.nextPosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。