The GSE tokenizer has been configured, but the tokenization effect is poor when performing BM25 retrieval

I has been configured gse tokenizer like:ENABLE_TOKENIZER_GSE set true

and the collection is:

{
  "class": "Vector_index_d8d1ec17_1f6c_41c5_8bd2_7364402f323a_Node",
  "invertedIndexConfig": {
    "bm25": {
      "b": 0.75,
      "k1": 1.2
    },
    "cleanupIntervalSeconds": 60,
    "stopwords": {
      "additions": null,
      "preset": "en",
      "removals": null
    }
  },
  "multiTenancyConfig": {
    "autoTenantActivation": false,
    "autoTenantCreation": false,
    "enabled": false
  },
  "properties": [
    {
      "dataType": [
        "text"
      ],
      "indexFilterable": true,
      "indexRangeFilters": false,
      "indexSearchable": true,
      "name": "text",
      "tokenization": "gse"
    }
  ]
}

where trying to search like:

weaviate = WeaviateVector()
client = weaviate.init_client(url, api_key)
query_obj = client.query.get(class_name, properties)
properties = ["text"]
result = query_obj.with_bm25(query="需要消费300积分以上吗", properties=properties).with_additional(["explainScore"]) .with_limit(5).do()

the result is:

{
  "data": {
    "Get": {
      "Vector_index_d8d1ec17_1f6c_41c5_8bd2_7364402f323a_Node": [
        {
          "_additional": {
            "explainScore": ", BM25F_积_frequency:1, BM25F_积_propLength:17, BM25F_分_frequency:1, BM25F_分_propLength:17, BM25F_0_frequency:2, BM25F_0_propLength:17"
          },
          "dataset_id": "d8d1ec17-1f6c-41c5-8bd2-7364402f323a",
          "doc_hash": "90cbb518e783ac17ce206d1c84cec754fa60db4cf1565fae0ab051ed76b875fa",
          "doc_id": "15563f60-d938-42b5-b583-c0fe56b460d7",
          "document_id": "e1d980df-7497-4f39-b823-3d84f4c1190b",
          "text": "测试品牌甲乙丙丁200ml的价格和积分"
        },
        {
          "_additional": {
            "explainScore": ", BM25F_0_frequency:2, BM25F_0_propLength:15"
          },
          "dataset_id": "d8d1ec17-1f6c-41c5-8bd2-7364402f323a",
          "doc_hash": "ecc9d23dbb0028d8644f8edb8ed859528d25700ae48323efa57d7a589f82518a",
          "doc_id": "0a0c54b2-c5f5-4a71-97f1-92c885605863",
          "document_id": "e1d980df-7497-4f39-b823-3d84f4c1190b",
          "text": "测试品牌甲乙丙丁200ml的使用方法 "
        },
        {
          "_additional": {
            "explainScore": ", BM25F_0_propLength:16, BM25F_0_frequency:2"
          },
          "dataset_id": "d8d1ec17-1f6c-41c5-8bd2-7364402f323a",
          "doc_hash": "6e9bc0d6a52b879f0b9c6fe6c225438976d96885e5fcb26231d47d34c3ccf130",
          "doc_id": "c8d209ad-bbfb-4391-9f82-c421ec4c0187",
          "document_id": "e1d980df-7497-4f39-b823-3d84f4c1190b",
          "text": "测试品牌甲乙丙丁200ml的注意事项"
        }
	]
   }
  }
}

It seems like GSE is not being used.

Has anyone else encountered a similar issue and knows how to resolve it? I’d greatly appreciate any advice. Thank you very much!

weaviate version: 1.28.0
weaviate-client: 3.24.0

Hi!

Can you try using new versions?

1.28.0 is quite old. :grimacing:

Also, this syntax:

query_obj.with_bm25(query="需要消费300积分以上吗", properties=properties).with_additional(["explainScore"]) .with_limit(5).do()

is from typescript client v2. Here is our docs on how to migrate from weaviate typescript client v2 to v3: Migrate from v2 to v3 | Weaviate Documentation

Let me know if this helps!

THanks!

Hi!

I tried upgrading my instance from 1.25.0 to several newer versions (1.28.0, 1.29.11, 1.30.17, 1.31.16), but I keep running into the same issue.

this is my testing docker:

---
services:
  weaviate:
    command:
    - --host
    - 0.0.0.0
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.32.9
    ports:
    - 8080:8080
    - 50051:50051
    volumes:
    - weaviate_data:/var/lib/weaviate
    restart: on-failure:0
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      ENABLE_API_BASED_MODULES: 'true'
      ENABLE_TOKENIZER_GSE: 'true'
      CLUSTER_HOSTNAME: 'node1'
volumes:
  weaviate_data:
...

my tesing weaviate-client demo: (weaviate-client: 3.24.0)

import weaviate
import json
import random
import uuid
import hashlib

def get_md5(text: str) -> str:
    return hashlib.md5(text.encode('utf-8')).hexdigest()


client = weaviate.Client(
    url="http://192.168.139.115:8080"
)
print(client.is_ready())

###########################################################################

class_name = "Vector_index_b50b2b0e_598c_43d6_b424_7207ac2ceb5d_Node"

###########################################################################

class_config = {
    "class": class_name,
    "invertedIndexConfig": {
        "bm25": {
            "b": 0.75,
            "k1": 1.2
        },
        "cleanupIntervalSeconds": 60,
        "stopwords": {
            "additions": None,
            "preset": "en",
            "removals": None
        },
        "usingBlockMaxWAND": True
    },
    "multiTenancyConfig": {
        "autoTenantActivation": False,
        "autoTenantCreation": False,
        "enabled": False
    },
    "properties": [
        {
            "dataType": ["text"],
            "indexFilterable": True,
            "indexRangeFilters": False,
            "indexSearchable": True,
            "name": "text",
            "tokenization": "gse"
        },
        {
            "dataType": ["uuid"],
            "description": "This property was generated by Weaviate's auto-schema feature on Tue Sep 23 03:20:53 2025",
            "indexFilterable": True,
            "indexRangeFilters": False,
            "indexSearchable": False,
            "name": "doc_id"
        },
        {
            "dataType": ["text"],
            "description": "This property was generated by Weaviate's auto-schema feature on Tue Sep 23 03:20:53 2025",
            "indexFilterable": True,
            "indexRangeFilters": False,
            "indexSearchable": True,
            "name": "doc_hash",
            "tokenization": "word"
        },
        {
            "dataType": ["uuid"],
            "description": "This property was generated by Weaviate's auto-schema feature on Tue Sep 23 03:20:53 2025",
            "indexFilterable": True,
            "indexRangeFilters": False,
            "indexSearchable": False,
            "name": "document_id"
        },
        {
            "dataType": ["uuid"],
            "description": "This property was generated by Weaviate's auto-schema feature on Tue Sep 23 03:20:53 2025",
            "indexFilterable": True,
            "indexRangeFilters": False,
            "indexSearchable": False,
            "name": "dataset_id"
        }
    ],
    "replicationConfig": {
        "asyncEnabled": False,
        "deletionStrategy": "NoAutomatedResolution",
        "factor": 1
    },
    "shardingConfig": {
        "actualCount": 1,
        "actualVirtualCount": 128,
        "desiredCount": 1,
        "desiredVirtualCount": 128,
        "function": "murmur3",
        "key": "_id",
        "strategy": "hash",
        "virtualPerPhysical": 128
    },
    "vectorIndexConfig": {
        "bq": {
            "enabled": False
        },
        "cleanupIntervalSeconds": 300,
        "distance": "cosine",
        "dynamicEfFactor": 8,
        "dynamicEfMax": 500,
        "dynamicEfMin": 100,
        "ef": -1,
        "efConstruction": 128,
        "filterStrategy": "sweeping",
        "flatSearchCutoff": 40000,
        "maxConnections": 32,
        "multivector": {
            "aggregation": "maxSim",
            "enabled": False,
            "muvera": {
                "dprojections": 16,
                "enabled": False,
                "ksim": 4,
                "repetitions": 10
            }
        },
        "pq": {
            "bitCompression": False,
            "centroids": 256,
            "enabled": False,
            "encoder": {
                "distribution": "log-normal",
                "type": "kmeans"
            },
            "segments": 0,
            "trainingLimit": 100000
        },
        "skip": False,
        "sq": {
            "enabled": False,
            "rescoreLimit": 20,
            "trainingLimit": 100000
        },
        "vectorCacheMaxObjects": 1000000000000
    },
    "vectorIndexType": "hnsw",
    "vectorizer": "none"
}

# client.schema.create_class(class_config)
# schema = client.schema.get(class_name)
# print(json.dumps(schema, indent=4))

###########################################################################

# data = {
#     "text": "商品甲乙丙丁的使用方法",
#     "doc_id": str(uuid.uuid4()),
#     "doc_hash": get_md5("商品甲乙丙丁的使用方法"),
#     "document_id": str(uuid.uuid4()),
#     "dataset_id": str(uuid.uuid4())
# }
# uuid1 = client.data_object.create(
#     data_object=data,
#     class_name=class_name,
#     vector=[random.uniform(-1, 1) for _ in range(384)]
# )
# print("插入成功_1,UUID:", uuid1)
#
# data = {
#     "text": "商品甲乙丙丁的产品规格",
#     "doc_id": str(uuid.uuid4()),
#     "doc_hash": get_md5("商品甲乙丙丁的产品规格"),
#     "document_id": str(uuid.uuid4()),
#     "dataset_id": str(uuid.uuid4())
# }
# uuid2 = client.data_object.create(
#     data_object=data,
#     class_name=class_name,
#     vector=[random.uniform(-1, 1) for _ in range(384)]
# )
# print("插入成功_2,UUID:", uuid2)
#
# data = {
#     "text": "商品甲乙丙丁的价格积分",
#     "doc_id": str(uuid.uuid4()),
#     "doc_hash": get_md5("商品甲乙丙丁的价格积分"),
#     "document_id": str(uuid.uuid4()),
#     "dataset_id": str(uuid.uuid4())
# }
# uuid3 = client.data_object.create(
#     data_object=data,
#     class_name=class_name,
#     vector=[random.uniform(-1, 1) for _ in range(384)]
# )
# print("插入成功_3,UUID:", uuid3)
#
# data = {
#     "text": "人工智能的未来发展趋势",
#     "doc_id": str(uuid.uuid4()),
#     "doc_hash": get_md5("人工智能的未来发展趋势"),
#     "document_id": str(uuid.uuid4()),
#     "dataset_id": str(uuid.uuid4())
# }
# uuid4 = client.data_object.create(
#     data_object=data,
#     class_name=class_name,
#     vector=[random.uniform(-1, 1) for _ in range(384)]
# )
# print("插入成功_4,UUID:", uuid4)

###########################################################################

# response = (
#     client.query
#     .get(class_name,["text", "doc_id"])
#     .with_bm25(
#         query="结合实际情况讨论一下未来人工智能的发展方向",
#         properties=["text"]
#     ).with_additional(["id", "score","explainScore"])
#     .with_limit(5)
#     .do()
# )
# print(json.dumps(response, indent=2, ensure_ascii=False))
#
# print("======================================================")
#
# response = (
#     client.query
#     .get(class_name,["text", "doc_id"])
#     .with_bm25(
#         query="消费300积分以上吗",
#         properties=["text"]
#     ).with_additional(["id", "score","explainScore"])
#     .with_limit(5)
#     .do()
# )
# print(json.dumps(response, indent=2, ensure_ascii=False))

The result is nearly the same as before, so I think the GSE tokenizer is not working well for Chinese.

Is there any documentation for rebuild the image?

But, where i search ENABLE_TOKENIZER_GSE in source code

I find ENABLE_TOKENIZER_GSE_CH, so i think it is just the chinese tokenizer

And then i find that:
gse is config for japeness
gse_ch just config for chinese

So i try:


But case error where: client.schema.create_class(class_config)

weaviate.exceptions.UnexpectedStatusCodeException: Create class! Unexpected status code: 422, with response body: {'error': [{'message': "tokenization 'gse_ch' is not allowed for data type 'text'"}]}.

Then find in source code:

I add it and want to rebuild the docker:
modify a part of the code in Dockerfile:

# syntax=docker/dockerfile:1.6
# Dockerfile for development purposes.
# Read docs/development.md for more information
# vi: ft=dockerfile

###############################################################################
# Base build image
FROM golang:1.24-alpine3.22 AS build_base
ENV GO111MODULE=on
# new: add goproxy
ENV GOPROXY=https://goproxy.cn,direct
RUN apk add --no-cache bash ca-certificates git gcc g++ libc-dev
WORKDIR /workspace
COPY go.mod go.sum ./
RUN go mod download


###############################################################################
# This image builds the weaviate server
FROM build_base AS server_builder
RUN mkdir -p /runtime/go-ego

ARG TARGETARCH
ARG GIT_BRANCH="unknown"
ARG GIT_REVISION="unknown"
ARG BUILD_USER="unknown"
ARG BUILD_DATE="unknown"
ARG EXTRA_BUILD_ARGS=""
ARG CGO_ENABLED=1
ENV CGO_ENABLED=$CGO_ENABLED
COPY . .

# new:custom gse dict
COPY gse-dict/custom_words.txt /runtime/gse-dict/custom_words.txt
COPY gse-dict/stop_custom.txt   /runtime/gse-dict/stop_custom.txt

RUN --mount=type=cache,id=gobuild-${TARGETARCH},target=/root/.cache/go-build,sharing=locked \
    GOOS=linux GOARCH=${TARGETARCH} \
    go build $EXTRA_BUILD_ARGS -trimpath \
      -ldflags="-s -w -extldflags '-static' \
        -X github.com/weaviate/weaviate/usecases/build.Branch=${GIT_BRANCH} \
        -X github.com/weaviate/weaviate/usecases/build.Revision=${GIT_REVISION} \
        -X github.com/weaviate/weaviate/usecases/build.BuildUser=${BUILD_USER} \
        -X github.com/weaviate/weaviate/usecases/build.BuildDate=${BUILD_DATE}" \
      -o /weaviate-server ./cmd/weaviate-server

RUN go_ego_dir=/go/pkg/mod/github.com/go-ego && \
    if [ -d "$go_ego_dir" ]; then cp -a "$go_ego_dir/." /runtime/go-ego/; fi




###############################################################################

# This creates an image that can be used to fake an api for telemetry acceptance test purposes
FROM build_base AS telemetry_mock_api
COPY . .
ENTRYPOINT ["./tools/dev/telemetry_mock_api.sh"]

###############################################################################
# Weaviate (no differentiation between dev/test/prod - 12 factor!)
FROM alpine:3.22 AS weaviate
RUN apk add --no-cache bc ca-certificates openssl && mkdir ./modules


RUN mkdir -p /var/gse/dicts
# new:from server_builder copy to weaviate container
COPY --from=server_builder /runtime/gse-dict/custom_words.txt /var/gse/dicts/custom_words.txt
COPY --from=server_builder /runtime/gse-dict/stop_custom.txt   /var/gse/dicts/stop_custom.txt

COPY --from=server_builder /weaviate-server /bin/weaviate
COPY --from=server_builder /runtime/go-ego/ /go/pkg/mod/github.com/go-ego/
ENTRYPOINT ["/bin/weaviate"]
CMD ["--host","0.0.0.0","--port","8080","--scheme","http"]

But run error:
Do client.schema.create_class(class_config) ok, but client.data_object.create()

data = {
    "text": "商品甲乙丙丁的使用方法",
    "doc_id": str(uuid.uuid4()),
    "doc_hash": get_md5("商品甲乙丙丁的使用方法"),
    "document_id": str(uuid.uuid4()),
    "dataset_id": str(uuid.uuid4())
}
uuid1 = client.data_object.create(
    data_object=data,
    class_name=class_name,
    vector=[random.uniform(-1, 1) for _ in range(384)]
)
print("插入成功_1,UUID:", uuid1)

case error:
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
docker logs:

[root@localhost ~]# docker logs root-weaviate-1
2025/09/26 02:09:38 Dict files path:  [github.com/go-ego/gse@v0.80.3/data/dict/zh/t_1.txt github.com/go-ego/gse@v0.80.3/data/dict/zh/s_1.txt]
2025/09/26 02:09:38 Load the gse dictionary: "github.com/go-ego/gse@v0.80.3/data/dict/zh/t_1.txt"
2025/09/26 02:09:38 Could not load dictionaries: "github.com/go-ego/gse@v0.80.3/data/dict/zh/t_1.txt", open github.com/go-ego/gse@v0.80.3/data/dict/zh/t_1.txt: no such file or directory
2025/09/26 02:09:38 gse.New failed: open github.com/go-ego/gse@v0.80.3/data/dict/zh/t_1.txt: no such file or directory
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"warning","log_level_env":"","msg":"log level not recognized, defaulting to info","time":"2025-09-26T02:09:39Z"}
{"action":"startup","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"Feature flag LD integration disabled: could not locate WEAVIATE_LD_API_KEY env variable","time":"2025-09-26T02:09:39Z"}
{"action":"startup","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","default_vectorizer_module":"none","level":"info","msg":"the default vectorizer modules is set to \"none\", as a result all new schema classes without an explicit vectorizer setting, will use this vectorizer","time":"2025-09-26T02:09:39Z"}
{"action":"startup","auto_schema_enabled":true,"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"auto schema enabled setting is set to \"true\"","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"warning","msg":"Multiple vector spaces are present, GraphQL Explore and REST API list objects endpoint module include params has been disabled as a result.","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"No resource limits set, weaviate will use all available memory and CPU. To limit resources, set LIMIT_RESOURCES=true","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"module offload-s3 is enabled","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","flag_key":"collection-retrieval-strategy","level":"info","msg":"feature flag instantiated","time":"2025-09-26T02:09:39Z","tool":"feature_flag","value":"LeaderOnly"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"open cluster service","servers":{"node1":8300},"time":"2025-09-26T02:09:39Z"}
{"address":"172.18.0.2:8301","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"starting cloud rpc server ...","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"starting raft sub-system ...","time":"2025-09-26T02:09:39Z"}
{"address":"172.18.0.2:8300","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"tcp transport","tcpMaxPool":3,"tcpTimeout":10000000000,"time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"loading local db","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"local DB successfully loaded","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"schema manager loaded","n":0,"time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","metadata_only_voters":false,"msg":"construct a new raft node","name":"node1","time":"2025-09-26T02:09:39Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","index":10,"level":"info","msg":"initial configuration","servers":"[[{Suffrage:Voter ID:node1 Address:172.18.0.2:8300}]]","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","last_snapshot_index":0,"last_store_applied_index_on_start":8,"level":"info","msg":"raft node constructed","raft_applied_index":0,"raft_last_index":10,"time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","hasState":true,"level":"info","msg":"raft init","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"attempting to join","remoteNodes":{"node1":"172.18.0.2:8300"},"time":"2025-09-26T02:09:39Z"}
{"action":"cluster_api_startup","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"cluster api server is ready to handle requests on :7947","time":"2025-09-26T02:09:39Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","follower":{},"leader-address":"","leader-id":"","level":"info","msg":"entering follower state","time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"attempted to join and failed","remoteNode":"172.18.0.2:8300","status":8,"time":"2025-09-26T02:09:39Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"attempting to join","remoteNodes":{"node1":"172.18.0.2:8300"},"time":"2025-09-26T02:09:40Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"attempted to join and failed","remoteNode":"172.18.0.2:8300","status":8,"time":"2025-09-26T02:09:40Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","last-leader-addr":"","last-leader-id":"","level":"warning","msg":"heartbeat timeout reached, starting election","time":"2025-09-26T02:09:41Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"entering candidate state","node":{},"term":6,"time":"2025-09-26T02:09:41Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"pre-vote successful, starting election","refused":0,"tally":1,"term":6,"time":"2025-09-26T02:09:41Z","votesNeeded":1}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"election won","tally":1,"term":6,"time":"2025-09-26T02:09:41Z"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","leader":{},"level":"info","msg":"entering leader state","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","last_store_log_applied_index":8,"level":"info","log_index":8,"log_name":"LogCommand","log_type":0,"msg":"reloading local DB as RAFT and local DB are now caught up","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"reload local db: update schema ...","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","index":"Vector_index_618b3434_36e9_069f_7ff3_eb189bf56ca8_Node","level":"info","msg":"reload local index","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","index":"Vector_index_b50b2b0e_598c_43d6_b424_7207ac2ceb5d_Node","level":"info","msg":"reload local index","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"configured versions","server_version":"1.34.0-dev","time":"2025-09-26T02:09:41Z","version":"1.34.0-dev"}
{"action":"grpc_startup","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"grpc server listening at [::]:50051","time":"2025-09-26T02:09:41Z"}
{"address":"172.18.0.2:8300","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"current Leader","time":"2025-09-26T02:09:41Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"attempting to join","remoteNodes":{"node1":"172.18.0.2:8300"},"time":"2025-09-26T02:09:41Z"}
{"action":"restapi_management","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"Serving weaviate at http://[::]:8080","time":"2025-09-26T02:09:41Z","version":"1.34.0-dev"}
{"action":"raft","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","command":0,"level":"info","msg":"updating configuration","server-addr":"172.18.0.2:8300","server-id":"node1","servers":"[[{Suffrage:Voter ID:node1 Address:172.18.0.2:8300}]]","time":"2025-09-26T02:09:41Z"}
{"action":"restore_from_disk","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"snapshots disabled, loading from commit log","time":"2025-09-26T02:09:42Z"}
{"action":"restore_from_disk","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","duration":"68.335µs","level":"info","msg":"restored data from disk","time":"2025-09-26T02:09:42Z"}
{"action":"hnsw_prefill_cache_async","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"not waiting for vector cache prefill, running in background","time":"2025-09-26T02:09:42Z","wait_for_cache_prefill":false}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"Completed loading shard vector_index_618b3434_36e9_069f_7ff3_eb189bf56ca8_node_OpOHHIV9I79k in 1.343652ms","time":"2025-09-26T02:09:42Z"}
{"action":"hnsw_vector_cache_prefill","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","count":1000,"index_id":"main","level":"info","limit":1000000000000,"msg":"prefilled vector cache","time":"2025-09-26T02:09:42Z","took":54450}
{"action":"restore_from_disk","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"snapshots disabled, loading from commit log","time":"2025-09-26T02:09:42Z"}
{"action":"restore_from_disk","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","duration":"194.373µs","level":"info","msg":"restored data from disk","time":"2025-09-26T02:09:42Z"}
{"action":"hnsw_prefill_cache_async","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"not waiting for vector cache prefill, running in background","time":"2025-09-26T02:09:42Z","wait_for_cache_prefill":false}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"Completed loading shard vector_index_b50b2b0e_598c_43d6_b424_7207ac2ceb5d_node_EN6I6QEfwct1 in 1.532502ms","time":"2025-09-26T02:09:42Z"}
{"action":"hnsw_vector_cache_prefill","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","count":3000,"index_id":"main","level":"info","limit":1000000000000,"msg":"prefilled vector cache","time":"2025-09-26T02:09:42Z","took":238558}
{"action":"telemetry_push","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"telemetry started","payload":"\u0026{MachineID:3fc39066-83d3-4b97-8b4f-f727fc279f1b Type:INIT Version:1.34.0-dev ObjectsCount:0 OS:linux Arch:amd64 UsedModules:[] CollectionsCount:2}","time":"2025-09-26T02:09:43Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"Metadata FSM reported caught up, starting replication engine","time":"2025-09-26T02:09:56Z"}
{"action":"replication_engine","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","engine":{},"level":"info","msg":"starting replication engine","node":"node1","time":"2025-09-26T02:09:56Z"}
{"action":"replication_engine","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","consumer":{},"level":"info","msg":"starting replication engine consumer","node":"node1","time":"2025-09-26T02:09:56Z"}
{"action":"replication_engine","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","component":"replication_consumer","level":"info","max_workers":10,"msg":"starting replication operation consumer","node":"node1","op_timeout":86400000000000,"time":"2025-09-26T02:09:56Z"}
{"action":"replication_engine","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","level":"info","msg":"starting replication engine producer","node":"node1","producer":{},"time":"2025-09-26T02:09:56Z"}
{"action":"replication_engine","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","component":"replication_producer","level":"info","msg":"starting replication engine FSM producer","node":"node1","polling_interval":5000000000,"time":"2025-09-26T02:09:56Z"}
{"build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","error":"runtime error: invalid memory address or nil pointer dereference","level":"error","method":"POST","msg":"runtime error: invalid memory address or nil pointer dereference","path":{"Scheme":"","Opaque":"","User":null,"Host":"","Path":"/v1/objects","RawPath":"","OmitHost":false,"ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"time":"2025-09-26T02:10:50Z"}
{"action":"requests_total","api":"rest","build_git_commit":"unknown","build_go_version":"go1.24.7","build_image_tag":"unknown","build_wv_version":"1.34.0-dev","class_name":"","error":"runtime error: invalid memory address or nil pointer dereference","level":"error","msg":"unexpected error","query_type":"","time":"2025-09-26T02:10:50Z"}

I think it may lose something when rebuild the images.

So now i want to find some help with rebuild the docker images. Thanks !