OCR does not support fuzzy search in Chinese, but it can achieve fuzzy search in English. #7710

Closed
opened 2026-02-05 13:15:21 +03:00 by OVERLORD · 18 comments
Owner

Originally created by @pyccl on GitHub (Nov 2, 2025).

I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.

  • Yes

The bug

For example, after checking the database, among the five Chinese characters "中关村延庆", only searching for "中关村延庆" can find it, and searching only for "中关村" or "延庆" will not yield any results. At the same time, there is' Open Olympic Games Clea Olypic Games', and searching for 'Game' will result in a normal search。
在检查数据库后,在五个汉字“中关村延庆”中,只有搜索“中关村延庆”才能找到它,而仅搜索“中关村”或“延庆”不会产生任何结果。同时,还有“Open Olympic Games Clea Olypic Games”,搜索“Game”将则可以正常搜索。

Image

经过测试,发现数据库中的每个字段都使用空格进行分段。在搜索两个空格之间的所有字符时,可以正常搜索。但是,如果只输入了部分字符,则不会获得任何结果。

Image Image Image

The OS that Immich Server is running on

Windows 11 25H2,DockerDesktop 4.49.0

Version of Immich Server

V2.2.1

Version of Immich Mobile App

V2.2.1

Platform with the issue

  • Server
  • Web
  • Mobile

Device make and model

Lenovo Notebook L450, Xiaomi Phone 13

Your docker-compose.yml content

#
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
#
# Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.

name: immich

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
      - "E:/My photo:/mnt/media/myphoto"
      - ./geodata:/build/geodata
      - ./i18n-iso-countries/langs:/usr/src/app/server/node_modules/i18n-iso-countries/langs
    env_file:
      - .env
    ports:
      - '2283:2283'
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
     # - "E:/immich/cache:/cache"
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
      # DB_STORAGE_TYPE: 'HDD'
    volumes:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
      - pgdata:/var/lib/postgresql/data
    shm_size: 128mb
    ports:
      - 5432:5432
    restart: always

  power-tools:
    container_name: immich_power_tools
    image: ghcr.io/varun-raj/immich-power-tools:latest
    ports:
      - "8001:3000"
    env_file:
      - .env
volumes:
  model-cache:
  pgdata:

Your .env content

# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=./library

# The location where your database files are stored. Network shares are not supported for the database
DB_DATA_LOCATION=./postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Asia/Shanghai

# The Immich version to use. You can pin this to a specific version like "v2.1.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

Reproduction steps

  1. Search for keywords in Immich.
  2. Fuzzy search does not yield results.
  3. Use database tools to view the content recognized by OCR in the database.
  4. Testing using content between two spaces can search normally, but fuzzy search cannot.
  5. The English fuzzy search test is normal.

Relevant log output


Additional information

No response

Originally created by @pyccl on GitHub (Nov 2, 2025). ### I have searched the existing issues, both open and closed, to make sure this is not a duplicate report. - [x] Yes ### The bug For example, after checking the database, among the five Chinese characters "中关村延庆", only searching for "中关村延庆" can find it, and searching only for "中关村" or "延庆" will not yield any results. At the same time, there is' Open Olympic Games Clea Olypic Games', and searching for 'Game' will result in a normal search。 在检查数据库后,在五个汉字“中关村延庆”中,只有搜索“中关村延庆”才能找到它,而仅搜索“中关村”或“延庆”不会产生任何结果。同时,还有“Open Olympic Games Clea Olypic Games”,搜索“Game”将则可以正常搜索。 <img width="884" height="214" alt="Image" src="https://github.com/user-attachments/assets/c7895ff4-e18e-494e-8cc8-af3cb10ad6f6" /> 经过测试,发现数据库中的每个字段都使用空格进行分段。在搜索两个空格之间的所有字符时,可以正常搜索。但是,如果只输入了部分字符,则不会获得任何结果。 <img width="803" height="388" alt="Image" src="https://github.com/user-attachments/assets/66f4ab40-9011-45e7-9308-ec537d683d41" /> <img width="530" height="327" alt="Image" src="https://github.com/user-attachments/assets/82ddf119-979b-4e49-bedd-300d818e5092" /> <img width="769" height="389" alt="Image" src="https://github.com/user-attachments/assets/bc0d0639-95e3-4203-b501-89c97e3251c3" /> ### The OS that Immich Server is running on Windows 11 25H2,DockerDesktop 4.49.0 ### Version of Immich Server V2.2.1 ### Version of Immich Mobile App V2.2.1 ### Platform with the issue - [ ] Server - [x] Web - [x] Mobile ### Device make and model Lenovo Notebook L450, Xiaomi Phone 13 ### Your docker-compose.yml content ```YAML # # WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose # # Make sure to use the docker-compose.yml of the current release: # # https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml # # The compose file on main may not be compatible with the latest release. name: immich services: immich-server: container_name: immich_server image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # extends: # file: hwaccel.transcoding.yml # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding volumes: # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file - ${UPLOAD_LOCATION}:/data - /etc/localtime:/etc/localtime:ro - "E:/My photo:/mnt/media/myphoto" - ./geodata:/build/geodata - ./i18n-iso-countries/langs:/usr/src/app/server/node_modules/i18n-iso-countries/langs env_file: - .env ports: - '2283:2283' depends_on: - redis - database restart: always healthcheck: disable: false immich-machine-learning: container_name: immich_machine_learning # For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag. # Example tag: ${IMMICH_VERSION:-release}-cuda image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} # extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration # file: hwaccel.ml.yml # service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable volumes: - model-cache:/cache # - "E:/immich/cache:/cache" env_file: - .env restart: always healthcheck: disable: false redis: container_name: immich_redis image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa healthcheck: test: redis-cli ping || exit 1 restart: always database: container_name: immich_postgres image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_USER: ${DB_USERNAME} POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_INITDB_ARGS: '--data-checksums' # Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs # DB_STORAGE_TYPE: 'HDD' volumes: # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file - ${DB_DATA_LOCATION}:/var/lib/postgresql/data - pgdata:/var/lib/postgresql/data shm_size: 128mb ports: - 5432:5432 restart: always power-tools: container_name: immich_power_tools image: ghcr.io/varun-raj/immich-power-tools:latest ports: - "8001:3000" env_file: - .env volumes: model-cache: pgdata: ``` ### Your .env content ```Shell # You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables # The location where your uploaded files are stored UPLOAD_LOCATION=./library # The location where your database files are stored. Network shares are not supported for the database DB_DATA_LOCATION=./postgres # To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List TZ=Asia/Shanghai # The Immich version to use. You can pin this to a specific version like "v2.1.0" IMMICH_VERSION=release # Connection secret for postgres. You should change it to a random password # Please use only the characters `A-Za-z0-9`, without special characters or spaces DB_PASSWORD=postgres # The values below this line do not need to be changed ################################################################################### DB_USERNAME=postgres DB_DATABASE_NAME=immich ``` ### Reproduction steps 1. Search for keywords in Immich. 2. Fuzzy search does not yield results. 3. Use database tools to view the content recognized by OCR in the database. 4. Testing using content between two spaces can search normally, but fuzzy search cannot. 5. The English fuzzy search test is normal. ### Relevant log output ```shell ``` ### Additional information _No response_
Author
Owner

@banjuer commented on GitHub (Nov 3, 2025):

I am getting the same problem

@banjuer commented on GitHub (Nov 3, 2025): I am getting the same problem
Author
Owner

@MFWT commented on GitHub (Nov 3, 2025):

Same issue here.

@MFWT commented on GitHub (Nov 3, 2025): Same issue here.
Author
Owner

@gusdleon commented on GitHub (Nov 4, 2025):

Noticed that too but in English and Spanish, so probably in any language, seems the match needs to be exact, to return results.

@gusdleon commented on GitHub (Nov 4, 2025): Noticed that too but in English and Spanish, so probably in any language, seems the match needs to be exact, to return results.
Author
Owner

@mertalev commented on GitHub (Nov 4, 2025):

We use a trigram index for searching with strict word similarity (it considers word boundaries / white space, not just characters). I wonder if it should only use string similarity for non-Latin text without considering boundaries.

@mertalev commented on GitHub (Nov 4, 2025): We use a trigram index for searching with strict word similarity (it considers word boundaries / white space, not just characters). I wonder if it should only use string similarity for non-Latin text without considering boundaries.
Author
Owner

@florihupf commented on GitHub (Nov 4, 2025):

After playing around for a while I also find fuzzy results in english: Searching for "retired" returns pictures with only submatches some letters, like "red" or "tire".

@florihupf commented on GitHub (Nov 4, 2025): After playing around for a while I also find fuzzy results in english: Searching for "retired" returns pictures with only submatches some letters, like "red" or "tire".
Author
Owner

@ffchung commented on GitHub (Nov 5, 2025):

Just like we asking on discussions. #23453 #23498

For OCR Search, can it have option between fuzzy search and full text search ?

@ffchung commented on GitHub (Nov 5, 2025): Just like we asking on discussions. #23453 #23498 For OCR Search, can it have option between fuzzy search and full text search ?
Author
Owner

@ffchung commented on GitHub (Nov 6, 2025):

I just try in SQL :
Fuzzy Search :

immich=# select count(*) from ocr_search where text % 'que';
24

immich=# select count(*) from ocr_search where text % 'queen';
33

Full Text Search :

immich=# select count(*) from ocr_search where text like '%que%';
1931

immich=# select count(*) from ocr_search where text like '%queen%';
345

For me, I need Full Text Search more that Fuzzy Search.

@ffchung commented on GitHub (Nov 6, 2025): I just try in SQL : Fuzzy Search : immich=# select count(*) from ocr_search where text % 'que'; 24 immich=# select count(*) from ocr_search where text % 'queen'; 33 Full Text Search : immich=# select count(*) from ocr_search where text like '%que%'; 1931 immich=# select count(*) from ocr_search where text like '%queen%'; 345 For me, I need Full Text Search more that Fuzzy Search.
Author
Owner

@mertalev commented on GitHub (Nov 6, 2025):

I just try in SQL :
Fuzzy Search :

immich=# select count(*) from ocr_search where text % 'que';
24

immich=# select count(*) from ocr_search where text % 'queen';
33

Full Text Search :

immich=# select count(*) from ocr_search where text like '%que%';
1931

immich=# select count(*) from ocr_search where text like '%queen%';
345

For me, I need Full Text Search more that Fuzzy Search.

That's interesting to see. I wouldn't expect the fuzzy search to return so fewer results. Is it the same result if you use %> or %>> instead of %?

@mertalev commented on GitHub (Nov 6, 2025): > I just try in SQL : > Fuzzy Search : > > immich=# select count(*) from ocr_search where text % 'que'; > 24 > > immich=# select count(*) from ocr_search where text % 'queen'; > 33 > > Full Text Search : > > immich=# select count(*) from ocr_search where text like '%que%'; > 1931 > > immich=# select count(*) from ocr_search where text like '%queen%'; > 345 > > For me, I need Full Text Search more that Fuzzy Search. That's interesting to see. I wouldn't expect the fuzzy search to return so fewer results. Is it the same result if you use %> or %>> instead of %?
Author
Owner

@ffchung commented on GitHub (Nov 6, 2025):

immich=# select count(*) from ocr_search where text % 'que';
count

32                                                                                             

(1 row)

immich=# select count(*) from ocr_search where text % 'queen';
count

45                                                                                             

(1 row)

immich=# select count(*) from ocr_search where text %> 'queen';
count

1836
(1 row)

immich=# select count(*) from ocr_search where text %> 'que';
count

2608
(1 row)

immich=# select count(*) from ocr_search where text %>> 'que';
count

105
(1 row)

immich=# select count(*) from ocr_search where text %>> 'queen';
count

1560
(1 row)

mmich=# select count(*) from ocr_search where text like '%queen%';
count

351
(1 row)

immich=# select count(*) from ocr_search where text like '%que%';
count

2024
(1 row)

@ffchung commented on GitHub (Nov 6, 2025): immich=# select count(*) from ocr_search where text % 'que'; count ------- 32 (1 row) immich=# select count(*) from ocr_search where text % 'queen'; count ------- 45 (1 row) immich=# select count(*) from ocr_search where text %> 'queen'; count ------- 1836 (1 row) immich=# select count(*) from ocr_search where text %> 'que'; count ------- 2608 (1 row) immich=# select count(*) from ocr_search where text %>> 'que'; count ------- 105 (1 row) immich=# select count(*) from ocr_search where text %>> 'queen'; count ------- 1560 (1 row) mmich=# select count(*) from ocr_search where text like '%queen%'; count ------- 351 (1 row) immich=# select count(*) from ocr_search where text like '%que%'; count ------- 2024 (1 row)
Author
Owner

@FHU-yezi commented on GitHub (Nov 21, 2025):

Confirm this issue with v2.3.1, the server OCR model and pictures with Chinese characters. Seems we don't split Chinese words so they can only be searched when we type in the whole word.

Maybe we need to introduce a real full-text search PostgreSQL extension?

@FHU-yezi commented on GitHub (Nov 21, 2025): Confirm this issue with v2.3.1, the server OCR model and pictures with Chinese characters. Seems we don't split Chinese words so they can only be searched when we type in the whole word. Maybe we need to introduce a real full-text search PostgreSQL extension?
Author
Owner

@isZYKerman commented on GitHub (Nov 21, 2025):

Well tried 2.3.1 with excitement but found out that its Chinese searching ability did not increase. :(
I was confused since #23590 was already merged. 🤔

@isZYKerman commented on GitHub (Nov 21, 2025): Well tried 2.3.1 with excitement but found out that its Chinese searching ability did not increase. :( I was confused since #23590 was already merged. 🤔
Author
Owner

@bzp2010 commented on GitHub (Nov 25, 2025):

I'm uncertain whether doing vector similarity searches after embedding text by the existing CLIP model (used by smart search) would enhance the user experience.

Should this prove impractical, a dedicated full-text search extension may be required. 🤨

Just in terms of effectiveness, ILIKE may be superior to trgm, while a true full-text search could surpass both.
I'm not certain whether vector search would be of assistance here. Perhaps one could directly store pointers from short phrases in asset_ocr to vectors, which might help with searching.

@bzp2010 commented on GitHub (Nov 25, 2025): I'm uncertain whether doing vector similarity searches after embedding text by the existing CLIP model (used by smart search) would enhance the user experience. Should this prove impractical, a dedicated full-text search extension may be required. 🤨 Just in terms of effectiveness, ILIKE may be superior to trgm, while a true full-text search could surpass both. I'm not certain whether vector search would be of assistance here. Perhaps one could directly store pointers from short phrases in `asset_ocr` to vectors, which might help with searching.
Author
Owner

@florihupf commented on GitHub (Nov 25, 2025):

Also, just mentioning the opposite. It would be great to explicitly disable fuzzy search. For example when searching for Pixar I don’t want results that only contain “Pix”.

@florihupf commented on GitHub (Nov 25, 2025): Also, just mentioning the opposite. It would be great to explicitly disable fuzzy search. For example when searching for Pixar I don’t want results that only contain “Pix”.
Author
Owner

@EricZhou05 commented on GitHub (Dec 18, 2025):

Updated to v2.3.1 today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in #24285 doesn't seem to fully solve the problem for non-spaced Chinese text.

Example:

  • OCR text in DB: 中山市教育和体育局
  • Search query: 中山
  • Result: No results.

It seems that when matching a short query (2 chars) against a long, non-spaced Chinese sentence (8+ chars), the Postgres similarity score still falls below the threshold, even with the bigram implementation from #24285.

Bigrams are a good improvement, but for languages like Chinese, we might eventually need a more robust Full-Text Search (FTS) solution or a way to adjust the similarity threshold specifically for CJK scripts.

Could we look into this further? @mertalev

@EricZhou05 commented on GitHub (Dec 18, 2025): Updated to **v2.3.1** today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in #24285 doesn't seem to fully solve the problem for non-spaced Chinese text. **Example:** - **OCR text in DB:** `中山市教育和体育局` - **Search query:** `中山` - **Result:** No results. It seems that when matching a short query (2 chars) against a long, non-spaced Chinese sentence (8+ chars), the Postgres similarity score still falls below the threshold, even with the bigram implementation from #24285. Bigrams are a good improvement, but for languages like Chinese, we might eventually need a more robust Full-Text Search (FTS) solution or a way to adjust the similarity threshold specifically for CJK scripts. Could we look into this further? @mertalev
Author
Owner

@isZYKerman commented on GitHub (Dec 18, 2025):

Updated to v2.3.1 today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in #24285 doesn't seem to fully solve the problem for non-spaced Chinese text.

@EricZhou05 2.3.1 did not solve this. #24285 was merged on Dec 2, but 2.3.1 was released on Nov 20. The new version with CJK optimization is yet to come.

@isZYKerman commented on GitHub (Dec 18, 2025): > Updated to **v2.3.1** today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in [#24285](https://github.com/immich-app/immich/pull/24285) doesn't seem to fully solve the problem for non-spaced Chinese text. @EricZhou05 2.3.1 did not solve this. #24285 was merged on Dec 2, but 2.3.1 was released on Nov 20. The new version with CJK optimization is yet to come.
Author
Owner

@EricZhou05 commented on GitHub (Dec 18, 2025):

Updated to v2.3.1 today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in #24285 doesn't seem to fully solve the problem for non-spaced Chinese text.

@EricZhou05 2.3.1 did not solve this. #24285 was merged 12月2日but 2.3.1 was released 11月20. The new version with CJK optimization is yet to come.

My bad! You are right. I just updated to the latest main build (v2.4.0) and the search issue is indeed resolved. The bigram optimization in #24285 works perfectly now. Thanks for the clarification!

@EricZhou05 commented on GitHub (Dec 18, 2025): > > Updated to **v2.3.1** today, but the CJK OCR search issue persists for long strings. The Bigram optimization introduced in [#24285](https://github.com/immich-app/immich/pull/24285) doesn't seem to fully solve the problem for non-spaced Chinese text. > > [@EricZhou05](https://github.com/EricZhou05) 2.3.1 did not solve this. [#24285](https://github.com/immich-app/immich/pull/24285) was merged 12月2日but 2.3.1 was released 11月20. The new version with CJK optimization is yet to come. My bad! You are right. I just updated to the latest main build (v2.4.0) and the search issue is indeed resolved. The bigram optimization in [#24285](https://github.com/immich-app/immich/pull/24285) works perfectly now. Thanks for the clarification!
Author
Owner

@isZYKerman commented on GitHub (Dec 18, 2025):

😮
Image
Where did you get that 2.4.0 release? @EricZhou05 I also want to try it out.

@isZYKerman commented on GitHub (Dec 18, 2025): 😮 <img width="477" height="238" alt="Image" src="https://github.com/user-attachments/assets/2508030e-fa5c-4e53-acb9-6508dc79e16a" /> Where did you get that 2.4.0 release? @EricZhou05 I also want to try it out.
Author
Owner

@EricZhou05 commented on GitHub (Dec 18, 2025):

😮 Image你从哪里弄到2.4.0版本的?我也想试试。

Steps to Switch to Immich Testing Build (main)

1. Update the .env file
Open the .env file in your Immich directory and change (or add) the following line:

IMMICH_VERSION=main

2. Deploy the changes
Run the following commands in your terminal to pull the latest image and restart the containers:

docker compose pull
docker compose up -d

The main tag includes the most recent code (such as the CJK search fix in #24285), but it may be less stable than the release version.

@EricZhou05 commented on GitHub (Dec 18, 2025): > 😮 <img alt="Image" width="477" height="238" src="https://private-user-images.githubusercontent.com/161423609/528018127-2508030e-fa5c-4e53-acb9-6508dc79e16a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjYwNjQ2MjAsIm5iZiI6MTc2NjA2NDMyMCwicGF0aCI6Ii8xNjE0MjM2MDkvNTI4MDE4MTI3LTI1MDgwMzBlLWZhNWMtNGU1My1hY2I5LTY1MDhkYzc5ZTE2YS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMjE4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTIxOFQxMzI1MjBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mZjA2ODZlYmFjNDJlM2E5ZjZlYjMyNGY1OWY4OTJiM2RjODAyZTM5MmYyZTVjNjYyNDgzZmVlM2E1NDBiY2RiJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YmmH4GVAKgJ5HaKDh6lggFkV78CkmRA5q69RMdLfE6k">你从哪里弄到2.4.0版本的?我也想试试。 ### Steps to Switch to Immich Testing Build (`main`) **1. Update the `.env` file** Open the `.env` file in your Immich directory and change (or add) the following line: ```env IMMICH_VERSION=main ``` **2. Deploy the changes** Run the following commands in your terminal to pull the latest image and restart the containers: ```bash docker compose pull docker compose up -d ``` The `main` tag includes the most recent code (such as the CJK search fix in #24285), but it may be less stable than the `release` version.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#7710