本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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;
}