optimize bm25 token compare
This commit is contained in:
@ -243,6 +243,7 @@ static void InsertItemToTokenMetaList(Relation index, BM25PageLocationInfo &buck
|
||||
securec_check_c(rc, "\0", "\0");
|
||||
tokenMeta->tokenId = BM25AllocateTokenId(index);
|
||||
tokenData.tokenId = tokenMeta->tokenId;
|
||||
tokenMeta->hashValue = tokenData.hashValue;
|
||||
tokenMeta->maxScore = 0;
|
||||
tokenMeta->postingBlkno = InvalidBlockNumber;
|
||||
tokenMeta->lastInsertBlkno = InvalidBlockNumber;
|
||||
|
||||
@ -332,7 +332,8 @@ bool FindTokenMeta(BM25TokenData &tokenData, BM25PageLocationInfo &tokenMetaLoca
|
||||
OffsetNumber maxoffno = PageGetMaxOffsetNumber(page);
|
||||
for (OffsetNumber offno = FirstOffsetNumber; offno <= maxoffno; offno = OffsetNumberNext(offno)) {
|
||||
BM25TokenMetaPage tokenMeta = (BM25TokenMetaPage)PageGetItem(page, PageGetItemId(page, offno));
|
||||
if (strncmp(tokenMeta->token, tokenData.tokenValue, BM25_MAX_TOKEN_LEN - 1) == 0) {
|
||||
if ((tokenMeta->hashValue == tokenData.hashValue) &&
|
||||
(strncmp(tokenMeta->token, tokenData.tokenValue, BM25_MAX_TOKEN_LEN - 1) == 0)) {
|
||||
tokenMetaLocation.blkno = BufferGetBlockNumber(buf);
|
||||
tokenMetaLocation.offno = offno;
|
||||
return true;
|
||||
|
||||
@ -159,6 +159,7 @@ typedef BM25HashBucketItem *BM25HashBucketPage;
|
||||
|
||||
typedef struct BM25TokenMetaItem {
|
||||
uint32 tokenId;
|
||||
uint32 hashValue;
|
||||
uint32 docCount;
|
||||
BlockNumber postingBlkno;
|
||||
BlockNumber lastInsertBlkno;
|
||||
|
||||
Reference in New Issue
Block a user