optimize bm25 token compare

This commit is contained in:
Eurekaxun
2025-05-21 14:33:20 +08:00
committed by wlff234
parent 95e4b21b09
commit c34ccc072f
3 changed files with 4 additions and 1 deletions

View File

@ -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;

View File

@ -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;

View File

@ -159,6 +159,7 @@ typedef BM25HashBucketItem *BM25HashBucketPage;
typedef struct BM25TokenMetaItem {
uint32 tokenId;
uint32 hashValue;
uint32 docCount;
BlockNumber postingBlkno;
BlockNumber lastInsertBlkno;