Searx หรือ SearXNG: โครงการไหนยังอัปเดตอยู่และควรใช้ตัวไหน
Searx หยุดพัฒนาตั้งแต่ปี 2023 โดยไม่มีการ commit โค้ดใหม่ ขณะที่ SearXNG กลายเป็นมาตรฐานปัจจุบัน ตรวจสอบสถานะโครงการด้วยตัวเอง พร้อมสรุปความแตกต่างของไฟล์คอนฟิกและวิธีติดตั้งใช้งาน
Searx หรือ SearXNG: คุณควรติดตั้งตัวไหน?
Searx และ SearXNG เป็นโครงการที่แตกต่างกันสองโครงการซึ่งมีชื่อเกือบจะเหมือนกัน แต่มีเพียงโครงการเดียวเท่านั้นที่ยังคงได้รับการแก้ไขข้อผิดพลาด คุณควรติดตั้ง SearXNG โครงการ Searx ดั้งเดิมไม่มีการ commit โค้ดใดๆ มาตั้งแต่เดือนเมษายน 2023 และไฟล์ README ของโครงการเองได้ระบุสถานะไว้ในบรรทัดเดียวว่า "Searx ไม่ได้รับการดูแลรักษาอีกต่อไป"
สิ่งนี้ทำให้เกิดปัญหาในทางปฏิบัติมากกว่าปัญหาเชิงทฤษฎี ทั้งสองโครงการใช้ภาพหน้าจอเดียวกัน ไฟล์คอนฟิกูเรชันส่วนใหญ่เหมือนกัน และใช้ชื่อร่วมกันครึ่งหนึ่ง ทำให้คู่มือที่เขียนขึ้นสำหรับโครงการหนึ่งดูเหมือนจะใช้ได้กับอีกโครงการหนึ่ง ซึ่งในความเป็นจริงแล้วไม่ใช่เช่นนั้น ไฟล์การตั้งค่าถูกจัดเก็บไว้ในตำแหน่งที่ต่างกัน ระบบป้องกันบอทเป็นแบบใหม่ และชื่อแพ็กเกจไม่มีอยู่ใน Ubuntu เวอร์ชันปัจจุบัน สิ่งที่จะกล่าวต่อไปนี้คือรายละเอียดการแยกตัวของโครงการ คำสั่งสำหรับตรวจสอบสถานะด้วยตนเอง และรายการสิ่งที่เปลี่ยนแปลงสำหรับผู้ที่ต้องการติดตั้งใช้งาน instance ของตนเอง
Searx คืออะไร และ SearXNG มีที่มาอย่างไร
Searx เป็น metasearch engine ซึ่งไม่ได้จัดเก็บดัชนีการค้นหาของตนเอง แต่จะรับคำค้นหาของคุณไปส่งต่อยังบริการค้นหาอื่น เช่น Bing, DuckDuckGo หรือ Wikipedia แล้วนำผลลัพธ์ที่ได้มารวมกันในหน้าเดียว ข้อดีคือบริการเหล่านั้นจะเห็นที่อยู่ IP ของเซิร์ฟเวอร์แทนที่จะเป็นของคุณ แต่ข้อเสียคือภาระในการดูแลรักษา เนื่องจากแต่ละ engine เป็นโค้ดขนาดเล็กที่ทำหน้าที่แยกวิเคราะห์ (parse) HTML หรือ API ของผู้อื่น ดังนั้น engine จะใช้งานไม่ได้ทันทีที่ต้นทางมีการเปลี่ยนแปลง ความเสถียรของ metasearch engine จึงขึ้นอยู่กับผู้ที่คอยแก้ไขโมดูล engine เหล่านั้น
repository ของ searx ถูกสร้างขึ้นในเดือนตุลาคม 2013 ต่อมาในเดือนเมษายน 2021 อดีตผู้ดูแลคนหนึ่งได้เริ่มโครงการ SearXNG โดยเป็นการ fork ออกมา คำว่า "NG" ย่อมาจาก next generation ในไฟล์ README ของ searx เองได้อธิบายถึงทั้งสองโครงการไว้ควบคู่กัน ซึ่งคำอธิบายนั้นยังคงเป็นสรุปที่ชัดเจนที่สุดเกี่ยวกับความแตกต่างของทั้งสองโครงการ:
SearXNG เป็นการ fork ของ searx ซึ่งสร้างโดยอดีตผู้ดูแลของ searx
SearXNG มีการปล่อยอัปเดตแบบ rolling releases มีการอัปเดต dependency บ่อยครั้งกว่า และมีการแก้ไข engine ที่รวดเร็วกว่า
ความเห็นที่ไม่ตรงกันซึ่งนำไปสู่การ fork คือเรื่องการวินิจฉัยปัญหา Searx มองว่าข้อมูลการใช้งานเป็นสิ่งที่ instance ไม่ควรจัดเก็บ และการตั้งค่าเริ่มต้นก็ได้ระบุไว้ชัดเจนว่า: enable_stats: False # activate /stats page - note: it may leak usage data ในขณะที่ SearXNG ตัดสินใจในทางตรงกันข้ามและกำหนดค่า enable_metrics: true ไว้เป็นค่าเริ่มต้น เมตริกเหล่านี้คือสิ่งที่เติมเต็มแถบแสดงเวลาตอบสนองและหน้าแสดงข้อผิดพลาด ซึ่งช่วยให้ค้นหาและแก้ไข engine ที่เสียหายได้ง่ายขึ้น ทั้งสองแนวทางต่างมีเหตุผลรองรับ แต่มีเพียงโครงการเดียวที่ยังคงมีการพัฒนาโค้ดอย่างต่อเนื่องมาจนถึงปัจจุบัน
Searx ตายแล้วหรือยัง? วิธีตรวจสอบด้วยตัวเอง
"ตาย" ไม่ใช่สถานะที่ GitHub รายงาน ดังนั้นให้ดูสัญญาณสองอย่างที่มีอยู่แล้วตัดสินใจ สัญญาณแรกคือ repository ถูกเก็บถาวร (archived) หรือไม่ และมีการ push ล่าสุดเมื่อใด
curl -s https://api.github.com/repos/searx/searx | jq -r '.archived, .pushed_at'
curl -s https://api.github.com/repos/searxng/searxng | jq -r '.archived, .pushed_at'ในวันที่ 22 สิงหาคม 2026 คำสั่งแรกจะแสดง false และ 2026-05-14T10:02:22Z คำสั่งที่สองจะแสดง false และประทับเวลาของวันที่คุณรันคำสั่ง ให้สังเกตค่าแรกไว้ repository ของ searx ไม่ได้ถูกเก็บถาวรและไม่มีใครล็อกประตูไว้ นี่คือเหตุผลว่าทำไมคำถามนี้ถึงยังคงถูกถามอยู่เรื่อยๆ
pushed_at เป็นสัญญาณที่อ่อนในตัวมันเอง เพราะมันจะเปลี่ยนเมื่อมีการ push ไปยัง branch ใดก็ตาม รวมถึงการแก้ไขเอกสารเพียงบรรทัดเดียว ให้ดูรายการ commit แทน
curl -s 'https://api.github.com/repos/searx/searx/commits?per_page=5' \
| jq -r '.[] | .commit.committer.date[:10] + " " + (.commit.message | split("\n")[0])'ณ เดือนสิงหาคม 2026 คำสั่งนั้นจะแสดงผลดังนี้:
2026-05-14 [doc] add hister reference
2023-09-07 Searx is no longer maintained
2023-04-05 Fix quoting issue in search_operator plugin (#3479)
2023-04-04 Bump pallets-sphinx-themes from 2.0.2 to 2.0.3 (#3450)
2023-04-04 Bump selenium from 4.7.2 to 4.8.3 (#3490)ให้อ่านจากล่างขึ้นบน งานปกติหยุดลงในเดือนเมษายน 2023 commit ในเดือนกันยายน 2023 คือการที่ผู้ดูแลโครงการเขียนประกาศลงใน README ส่วน commit เดียวที่มีหลังจากนั้นเป็นเพียงการแก้ไขเอกสาร เนื่องจากผู้เขียนต้นฉบับย้ายไปทำ Hister ซึ่งเป็นเครื่องมือค้นหาที่ทำดัชนีหน้าเว็บและไฟล์ที่คุณเลือกแทนการสอบถามจาก engine อื่นๆ นั่นเป็นแนวคิดที่แตกต่างออกไป และมีประโยชน์หากสิ่งที่คุณต้องการจริงๆ คือ เครื่องมือค้นหาข้อมูลส่วนตัวของคุณเอง
สัญญาณที่สองคือการทำแพ็กเกจ (packaging) ซึ่งเป็นสิ่งที่ tutorial เก่าๆ ส่วนใหญ่พึ่งพาโดยไม่รู้ตัว
- PyPI มี release ของ
searxอยู่หนึ่งรายการ คือเวอร์ชัน 0.17.0 ซึ่งอัปโหลดในเดือนกรกฎาคม 2020 คำสั่งpip install searxจะทำงานสำเร็จและให้โค้ดจากช่วงเก้าเดือนก่อนที่ fork จะเกิดขึ้น - Debian เคยแจกจ่าย searx 1.1.0 ใน Debian 12 (bookworm) และยังคงมีอยู่ใน unstable มันถูกนำออกจาก testing ในเดือนตุลาคม 2023 ดังนั้น Debian 13 (trixie) จึงไม่มีแพ็กเกจ searx อีกต่อไป
- Ubuntu เคยแจกจ่ายครั้งล่าสุดในเวอร์ชัน 22.04 ที่เวอร์ชัน 1.0.0 บน Ubuntu 24.04 คำสั่ง
sudo apt install searxจะจบลงด้วยE: Unable to locate package searx - searx.space ซึ่งเป็นไดเรกทอรี instance สาธารณะที่โครงการแนะนำผู้ใช้มาโดยตลอด ปัจจุบันแสดงรายการ instance ของ SearXNG แล้ว
นี่คือสถานะตามความเป็นจริง โค้ดเป็นสาธารณะ มันยังคงทำงานได้ และคุณสามารถ clone และเริ่มใช้งานได้ในวันนี้ สิ่งที่คุณจะไม่ได้รับคือการแก้ไข engine หรือการอัปเดตความปลอดภัย ซึ่งสำหรับ metasearch engine แล้ว นั่นคืองานหลักทั้งหมด Engine ต่างๆ จะเสื่อมสภาพตามกำหนดเวลาของผู้อื่น Instance ที่ไม่มีการดูแลจะส่งคืนผลลัพธ์น้อยลงทุกเดือนโดยที่ไม่มีใครต้องไปแตะต้องเซิร์ฟเวอร์เลย
สิ่งที่เปลี่ยนไปสำหรับอินสแตนซ์ใหม่
ไฟล์การตั้งค่าถูกย้ายและเปลี่ยนเป็นรูปแบบ overlay
ใน Searx คุณเคยแก้ไข searx/settings.yml ภายใน source tree แต่ใน SearXNG ไฟล์นี้จะอยู่ที่ /etc/searxng/settings.yml และกระบวนการทำงานจะค้นหาไฟล์ผ่านตัวแปรสภาพแวดล้อม SEARXNG_SETTINGS_PATH โดย template ที่ตัวติดตั้งคัดลอกไปให้นั้นมีขนาดสั้น:
use_default_settings: true
general:
debug: false
instance_name: "SearXNG"
search:
safe_search: 2
autocomplete: 'duckduckgo'
formats:
- html
server:
# Is overwritten by ${SEARXNG_SECRET}
secret_key: "ultrasecretkey"
limiter: true
image_proxy: true
valkey:
# URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}.
url: valkey://localhost:6379/0use_default_settings: true คือบรรทัดที่เปลี่ยนวิธีการทำงานของคุณ ด้วยบรรทัดนี้ ไฟล์ของคุณจะเก็บเฉพาะค่าที่ต้องการเขียนทับ (override) เท่านั้น ส่วนคีย์ใดที่คุณไม่ได้ระบุไว้ ระบบจะดึงค่าเริ่มต้นที่มาพร้อมกับแพ็กเกจมาใช้ หากไม่มีบรรทัดนี้ ไฟล์ของคุณจะต้องระบุการตั้งค่าทั้งหมดแยกตามแต่ละ engine ซึ่งเป็นสาเหตุที่ทำให้หลายคนพบปัญหาอินสแตนซ์เริ่มทำงานได้ปกติแต่กลับไม่พบข้อมูลใดๆ การนำไฟล์การตั้งค่า Searx เก่ามาวางใน path นี้จะเป็นการตั้งค่าที่สมบูรณ์แต่มีชื่อคีย์ที่ต่างออกไป ทำให้ระบบเลือกใช้วิธีที่สองและทำงานผิดพลาด
Secret key จะหยุดการทำงานของกระบวนการ
sudo -H sed -i -e "s/ultrasecretkey/$(openssl rand -hex 16)/g" \
"/etc/searxng/settings.yml"ให้รันคำสั่งดังกล่าวหนึ่งครั้งหลังจากคัดลอก template หากข้ามขั้นตอนนี้ไป SearXNG จะบันทึก log หนึ่งบรรทัดแล้วออกจากโปรแกรมด้วยสถานะ 1 เนื่องจาก webapp.py จะเปรียบเทียบ key กับค่าใน template ก่อนที่จะให้บริการใดๆ:
server.secret_key is not changed. Please use something else instead of ultrasecretkey.การตรวจสอบนี้จะถูกข้ามไปเมื่อ general.debug เป็น true ดังนั้นอินสแตนซ์อาจทำงานได้ปกติใน debug session แต่กลับปฏิเสธที่จะเริ่มทำงานภายใต้ systemd หรือใน container การที่ container รีสตาร์ทวนซ้ำโดยมีบรรทัดนั้นอยู่ใน docker compose logs คือผลจากการตรวจสอบนี้ ไม่ใช่เพราะ image เสียหาย
ตัวจำกัดการใช้งาน (limiter) เป็นของใหม่และต้องใช้ Valkey
Searx ไม่มีการจำกัดอัตราการใช้งาน (rate limiting) ภายในตัวแอปพลิเคชัน อินสแตนซ์ Searx สาธารณะจึงต้องใช้บริการแยกต่างหากมาวางไว้ด้านหน้า เช่น filtron สำหรับกรองคำขอ และ morty สำหรับทำ proxy เนื้อหาผลลัพธ์ ซึ่งทั้งสอง repository นี้ไม่มีการอัปเดตมาตั้งแต่ปี 2023
SearXNG ทำงานส่วนนี้ด้วยตัวเอง การจำกัดอัตราการใช้งานและการตรวจจับบอทจะใช้ limiter ซึ่งเปิดใช้งานด้วย server.limiter โดยค่าเริ่มต้นที่มากับระบบคือ false และใน template ของตัวติดตั้งคือ true ซึ่งจำเป็นต้องใช้ฐานข้อมูล Valkey เพื่อเก็บค่าตัวนับ Valkey เป็น fork ของ Redis และ Ubuntu 24.04 มีแพ็กเกจนี้ให้ใช้งาน:
sudo apt install -y valkey-serverserver:
limiter: true
valkey:
url: valkey://localhost:6379/0คู่มือที่เขียนก่อนการเปลี่ยนชื่อนี้จะแนะนำให้ตั้งค่าบล็อก redis: แทน ดังนั้นให้คัดลอกชื่อคีย์จากเอกสารประกอบของ limiter ฉบับปัจจุบัน การปรับแต่งอย่างละเอียดจะอยู่ในไฟล์ที่สองคือ /etc/searxng/limiter.toml และ server.public_instance: true จะเปิดใช้งานการตรวจจับบอทที่เข้มงวดขึ้นซึ่งจำเป็นสำหรับอินสแตนซ์สาธารณะ รวมถึงวิธีการใช้ link token ผลลัพธ์ที่เห็นได้ชัดคือคำขอบางรายการจะได้รับคำตอบเป็น HTTP 429 แทนที่จะเป็นผลลัพธ์ รวมถึงคำขอของคุณเองหากคุณเขียนสคริปต์เรียกใช้อินสแตนซ์ ซึ่งมีหน้าอธิบายเฉพาะเรื่องนี้ที่: ทำไมอินสแตนซ์ SearXNG ถึงตอบกลับ 429 Too Many Requests
Engine จะระงับการทำงานตัวเองและมีระยะเวลา timeout ที่ยาวนาน
เมื่อบริการต้นทางตอบกลับด้วย CAPTCHA หรือหน้าแจ้งเตือนการจำกัดอัตราการใช้งาน SearXNG จะยกเว้นการทำงาน (exception) และหยุดสอบถาม engine นั้นเป็นเวลาที่กำหนด แทนที่จะพยายามซ้ำจนเกิดการบล็อก ค่าเริ่มต้นจะอยู่ใน searx/settings.yml ภายใต้ search.suspended_times ซึ่งเป็นค่าที่เผยแพร่ 6 ค่า ณ เดือนสิงหาคม 2026:
The data behind this chart
[
{
"label": "SearxEngineAccessDenied",
"suspend_seconds": "180"
},
{
"label": "SearxEngineCaptcha",
"suspend_seconds": "3,600"
},
{
"label": "SearxEngineTooManyRequests",
"suspend_seconds": "180"
},
{
"label": "cf_SearxEngineCaptcha",
"suspend_seconds": "1,296,000"
},
{
"label": "cf_SearxEngineAccessDenied",
"suspend_seconds": "86,400"
},
{
"label": "recaptcha_SearxEngineCaptcha",
"suspend_seconds": "604,800"
}
]การตอบกลับว่าปฏิเสธการเข้าถึง (access denied) จะทำให้ engine นั้นถูกพักการทำงานเป็นเวลา 180 วินาที, CAPTCHA จะพักเป็นเวลา 3,600 วินาที, Cloudflare CAPTCHA จะพักเป็นเวลา 1,296,000 วินาที (ซึ่งเท่ากับ 15 วัน) และ Google reCAPTCHA จะพักเป็นเวลา 604,800 วินาที (ซึ่งเท่ากับ 1 สัปดาห์) ค่าที่ยาวนานเหล่านี้ถูกกำหนดไว้อย่างตั้งใจ เพราะการสอบถามซ้ำหลังจากบริการได้ระบุที่อยู่ IP ของอินสแตนซ์ไปแล้วจะนำไปสู่การถูกบล็อกอย่างถาวร
ในขณะที่ engine ถูกระงับ หน้าผลลัพธ์จะข้าม engine นั้นไปและรายงานในบล็อกแถบด้านข้างที่ชื่อว่า "Messages from the search engines" และ /stats/errors จะแสดงรายการสิ่งที่ล้มเหลว อินสแตนซ์ที่เพิ่งติดตั้งใหม่แล้วแสดงผลลัพธ์น้อยมักเกิดจากสาเหตุนี้ ไม่ใช่การติดตั้งที่ผิดพลาด
JSON API ถูกปิดไว้โดยค่าเริ่มต้น
ค่าเริ่มต้นที่มากับระบบคือ formats: [html] เท่านั้น ดังนั้น API ที่สคริปต์ทุกตัวต้องการจะถูกปิดไว้จนกว่าคุณจะเปิดใช้งาน:
curl -s -o /dev/null -w '%{http_code}\n' \
'http://127.0.0.1:8888/search?q=test&format=json'การทำเช่นนั้นจะแสดงผล 403 เนื่องจากเส้นทาง (route) การค้นหาจะเรียก flask.abort(403) เมื่อรูปแบบที่ร้องขอไม่อยู่ใน search.formats ให้เพิ่มรูปแบบดังกล่าวและรีสตาร์ทบริการ:
search:
formats:
- html
- jsonไฟล์การตั้งค่า searx ไม่มีคีย์ formats เลย ดังนั้นผลลัพธ์ JSON จึงพร้อมใช้งานทันทีที่ร้องขอ สคริปต์และโค้ดตัวอย่างจากยุคนั้นจึงอนุมานเช่นเดียวกัน และรูปแบบความล้มเหลวที่เกิดขึ้นคือการตอบกลับ 403 โดยไม่มีคำอธิบาย หากคุณกำลังเชื่อมต่ออินสแตนซ์เข้ากับเครื่องมือต่างๆ การตั้งค่านี้คือจุดเริ่มต้นของ: การกำหนด endpoint ของ SearXNG ให้กับ agent เพื่อใช้ค้นหา
เหตุผลที่บทความสอนใช้งาน Searx ที่ใช้วิธีคัดลอกและวางมักจะล้มเหลว
แต่ละบรรทัดต่อไปนี้ปรากฏอยู่ในคู่มือที่ยังคงติดอันดับการค้นหา แต่ละรายการล้วนล้มเหลวหรือทำให้เข้าใจผิดในการติดตั้งปัจจุบัน
sudo apt install searxบน Ubuntu 24.04 จะหยุดทำงานที่E: Unable to locate package searxเนื่องจากแพ็กเกจดังกล่าวถูกปล่อยออกมาครั้งล่าสุดในปี 22.04pip install searxทำงานสำเร็จและติดตั้งเวอร์ชัน 0.17.0 จากเดือนกรกฎาคม 2020 โดยไม่มีคำเตือนใดๆ ว่าเวอร์ชันนี้เก่ากว่าการแยกโปรเจกต์ (fork)git clone https://github.com/asciimoo/searxยังคงใช้งานได้เนื่องจาก GitHub ทำการเปลี่ยนเส้นทาง (redirect) ชื่อเจ้าของเดิม และส่งมอบโครงสร้างไฟล์ของเดือนเมษายน 2023 ให้คุณ- ขั้นตอนที่แก้ไข
searx/settings.ymlใน source tree ไม่ส่งผลใดๆ ต่อ SearXNG ซึ่งอ่านค่าจาก/etc/searxng/settings.yml - ขั้นตอนที่ติดตั้ง filtron หรือ morty คือการสร้างส่วนประกอบที่ SearXNG มีอยู่แล้วขึ้นมาใหม่
- URL
redis:สำหรับตัวจำกัด (limiter) นั้นล้าหลังกว่าคีย์valkey:ปัจจุบันอยู่หนึ่งชื่อ
คู่มือของ SearXNG ก็เสื่อมสภาพตามกาลเวลาเช่นกัน และ URL สำหรับ clone คือวิธีที่เร็วที่สุดในการตรวจสอบความเก่าของคู่มือ ไฟล์ compose เคยอยู่ใน repository searxng-docker แยกต่างหาก repository นั้นถูกเก็บถาวร (archive) ในเดือนมีนาคม 2026 และไฟล์ต่างๆ ถูกย้ายเข้าไปยัง container/ ใน repository หลัก วิธีการเริ่มต้นใช้งาน container อย่างรวดเร็วจากเอกสารปัจจุบันคือ:
mkdir -p ./searxng/core-config/
cd ./searxng/
curl -fsSL \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
-O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example
cp -i .env.example .env
nano .env
docker compose up -dให้แก้ไข .env ก่อนคำสั่งสุดท้าย อิมเมจจะแมป environment variable เข้ากับคีย์การตั้งค่า ดังนั้น SEARXNG_SECRET จะกลายเป็น server.secret_key และ SEARXNG_BASE_URL จะกลายเป็น server.base_url การติดตั้งบนโฮสต์ด้วยสคริปต์เป็นอีกเส้นทางหนึ่งที่ให้ผลลัพธ์เดียวกัน:
git clone https://github.com/searxng/searxng.git searxng
cd searxng
sudo -H ./utils/searxng.sh install allคำสั่งนั้นจะสร้างผู้ใช้ searxng, virtual environment ภายใต้ /usr/local/searxng และบริการ uWSGI ซึ่งเป็นการตั้งค่าอ้างอิงตามเอกสารของ SearXNG คำอธิบายโดยละเอียดของเส้นทางนั้นอยู่ใน การติดตั้ง SearXNG บน VPS ของคุณเอง
อินสแตนซ์สาธารณะหรืออินสแตนซ์ส่วนตัวของคุณเอง
อินสแตนซ์สาธารณะคือเซิร์ฟเวอร์ของผู้อื่นที่ทำหน้าที่ยุติการเชื่อมต่อ TLS (Transport Layer Security) ของคุณ ดังนั้นซอฟต์แวร์ที่นั่นจะอ่านคำค้นหาของคุณเป็นข้อความธรรมดา เอกสารประกอบของ SearXNG ระบุประเด็นเรื่องความเชื่อใจไว้อย่างชัดเจนว่า คุณต้องเชื่อใจผู้ดูแลระบบ และคุณไม่มีทางทราบได้เลยว่ามีการบันทึก log, รวบรวมข้อมูล หรือส่งต่อคำค้นหาไปยังบุคคลที่สามหรือไม่ รายการที่แสดงให้เห็นนั้นสั้นและครบถ้วน สแต็กของผู้ให้บริการสามารถมองเห็นข้อความคำค้นหา, เวลา, ที่อยู่ IP ที่คำขอส่งมา, user agent ของเบราว์เซอร์ และคุกกี้การตั้งค่าที่เก็บค่ากำหนดของคุณ นอกจากนี้ผู้ให้บริการยังเป็นผู้ควบคุมโค้ด ดังนั้น patch ใดๆ ที่พวกเขาติดตั้งจะทำงานกับทุกการค้นหาที่คุณทำที่นั่น
ค่าเริ่มต้นอย่างหนึ่งทำให้การบันทึก log โดยไม่ตั้งใจทำได้ง่ายขึ้น Searx เคยส่งการค้นหาผ่าน POST แต่ SearXNG มาพร้อมกับ method: "GET" โดยมีหมายเหตุว่า POST ช่วยให้คำค้นหาไม่ไปปรากฏในประวัติของเบราว์เซอร์ แต่ก่อให้เกิดปัญหาด้านการใช้งาน สำหรับ GET นั้น คำค้นหาจะอยู่ในบรรทัดคำขอ จึงทำให้ถูกบันทึกลงใน access log ของ reverse proxy โดยค่าเริ่มต้น และปรากฏในประวัติของเบราว์เซอร์ นั่นเป็นพฤติกรรมปกติของเว็บเซิร์ฟเวอร์ ซึ่งควรทราบก่อนที่คุณจะเลือกว่าจะใช้เซิร์ฟเวอร์ของใคร
การรันอินสแตนซ์ของคุณเองเป็นการย้ายความเชื่อใจแทนที่จะกำจัดมันทิ้ง คุณเป็นผู้ควบคุมโค้ดและ log และหากคุณไม่ต้องการประกาศชื่อโฮสต์หรือใบรับรอง TLS สำหรับเครื่องผู้ใช้เพียงคนเดียว การเข้าถึงผ่าน v3 onion service จะช่วยให้อินสแตนซ์ของคุณไม่อยู่ใน DNS สาธารณะในขณะที่คุณยังสามารถเข้าถึงได้จากทุกที่ แลกกับการที่เครื่องมือค้นหาต้นทาง (upstream engines) จะเห็นที่อยู่เดียวสำหรับการค้นหาทั้งหมดของคุณ และบนอินสแตนซ์ที่มีผู้ใช้คนเดียว ทุกคำค้นหาจะถูกโยงกลับมาที่คุณแทนที่จะปะปนไปกับกลุ่มคนจำนวนมาก อินสแตนซ์สาธารณะที่มีผู้ใช้งานหนาแน่นจะช่วยให้คุณกลมกลืนไปกับกลุ่มคนเหล่านั้นและนำ log ออกไปจากมือคุณ จงเลือกคุณสมบัติที่คุณให้ความสำคัญ และหากคุณต้องการรายการความเสี่ยงทั้งหมดก่อน ว่า SearXNG ปลอดภัยที่จะใช้หรือไม่ จะช่วยอธิบายรายละเอียดในส่วนนี้
ข้อควรทราบเชิงปฏิบัติสำหรับ VPS ช่วงที่อยู่ IP ของศูนย์ข้อมูลมักถูกทำเครื่องหมาย (flag) ได้เร็วกว่าการเชื่อมต่อจากบ้าน ดังนั้นอินสแตนซ์ใหม่จึงมักพบกับ CAPTCHA บนเครื่องมือค้นหาบางแห่งภายในไม่กี่การค้นหาแรก นั่นคือพฤติกรรมการระงับการใช้งานที่กล่าวถึงข้างต้นซึ่งกำลังทำงานตามหน้าที่ ไม่ใช่การตั้งค่าที่ผิดพลาด
หากคุณใช้งานอินสแตนซ์ Searx อยู่แล้ว
ไม่มีสิ่งใดเสียหายในวันที่คุณอ่านข้อความนี้ เซิร์ฟเวอร์จะยังคงทำงานต่อไปจนกว่าการเปลี่ยนแปลงจากต้นน้ำ (upstream) จะทำให้เอนจินอื่นหยุดทำงาน และหลังจากนั้นมันจะยังคงเสียอยู่อย่างนั้น ให้วางแผนการย้ายระบบและอย่าคัดลอกไฟล์การตั้งค่าเดิมมาใช้โดยตรง ให้เริ่มต้นจากเทมเพลตของ SearXNG แล้วค่อยเพิ่มเฉพาะสิ่งที่คุณตั้งใจปรับเปลี่ยนกลับเข้าไป ได้แก่ ชื่ออินสแตนซ์, safe_search, เอนจินที่คุณเปิดหรือปิดใช้งานตามชื่อ และค่าเริ่มต้นของอินเทอร์เฟซ เนื่องจากชื่อเอนจินและตัวเลือกต่างๆ ได้เปลี่ยนไปในเวอร์ชัน fork นี้แล้ว ให้ตรวจสอบแต่ละรายการเทียบกับเอกสารประกอบปัจจุบันแทนการคาดเดาว่าคีย์เดิมยังคงมีอยู่ กฎของ Filtron และ URL ของ morty ไม่มีค่าที่เทียบเท่ากันในระบบใหม่ เนื่องจากงานเหล่านั้นถูกย้ายเข้าไปอยู่ภายในตัวแอปพลิเคชันแล้ว
ให้รันอินสแตนซ์ใหม่บนพอร์ตอื่นในขณะที่อินสแตนซ์เดิมยังคงทำงานอยู่ ระบบจะถือว่าทำงานได้ปกติเมื่อหน้าแรกตอบกลับสถานะ 200, การค้นหาแสดงผลลัพธ์จากเอนจินมากกว่าหนึ่งรายการ และ /stats/errors ว่างเปล่าหรือแสดงเฉพาะรายการข้อผิดพลาดที่คุณเข้าใจที่มาที่ไป จากนั้นจึงย้ายการตั้งค่า reverse proxy มายังอินสแตนซ์ใหม่และหยุดบริการเดิมลง
FAQ
Searx ยังคงใช้งานได้ในปี 2026 หรือไม่?
repository ไม่ได้ถูกทำ archive ดังนั้นคุณยังสามารถ clone ได้ แต่โครงการนี้ไม่มีการดูแลรักษาแล้ว commit ล่าสุดเกิดขึ้นในเดือนเมษายน 2023 และใน README ก็ระบุชัดเจนว่า "Searx is no longer maintained" คุณสามารถตรวจสอบด้วยตนเองได้โดยใช้ curl -s https://api.github.com/repos/searx/searx | jq -r '.pushed_at' แล้วอ่านข้อความ commit ล่าสุด เพราะวันที่ push เพียงอย่างเดียวอาจมาจากการแก้ไขเอกสารเท่านั้น สำหรับ metasearch engine การไม่มีการดูแลรักษาหมายความว่าผลลัพธ์จะแย่ลงเรื่อยๆ เนื่องจาก engine แต่ละตัวต้องพึ่งพาเว็บไซต์ต้นทางที่มีการเปลี่ยนแปลงอยู่ตลอดเวลา
ฉันยังสามารถติดตั้ง Searx ด้วย apt หรือ pip ได้หรือไม่?
ไม่ได้ในระบบปัจจุบัน และไม่แนะนำให้ทำหากทำได้ Ubuntu บรรจุแพ็กเกจ searx ครั้งล่าสุดในเวอร์ชัน 22.04 ที่เวอร์ชัน 1.0.0 ดังนั้นการใช้ sudo apt install searx บน 24.04 จะได้ผลลัพธ์เป็น E: Unable to locate package searx ส่วน Debian เคยบรรจุเวอร์ชัน 1.1.0 ใน Debian 12 แต่ได้ถอดออกจาก testing ในเดือนตุลาคม 2023 ทำให้ Debian 13 ไม่มีแพ็กเกจนี้ให้ใช้งาน ส่วน PyPI ยังคงให้บริการเวอร์ชัน 0.17.0 จากเดือนกรกฎาคม 2020 ซึ่งเก่ากว่าตัว fork เองเสียอีก แนะนำให้ติดตั้ง SearXNG แทน
ไฟล์ settings.yml เดิมของ searx จะใช้กับ SearXNG ได้หรือไม่?
ไม่ได้ ให้คัดลอกเฉพาะค่าที่ต้องการ ไม่ใช่ทั้งไฟล์ SearXNG จะอ่าน /etc/searxng/settings.yml และคาดหวังให้มี use_default_settings: true อยู่ที่ส่วนบนสุด ดังนั้นไฟล์ของคุณจะทำหน้าที่เป็น overlay ทับค่าเริ่มต้นที่มากับโปรแกรม ไฟล์ searx แบบเก่าเป็นไฟล์ตั้งค่าแบบเต็มที่มีชื่อ key ต่างออกไป และไม่มี limiter, ไม่มีบล็อก valkey และไม่มีรายการ formats ให้เริ่มต้นจาก template ที่ utils/templates/etc/searxng/settings.yml แล้วค่อยๆ เพิ่มการตั้งค่าของคุณกลับเข้าไปทีละรายการ
ทำไม SearXNG instance ของฉันถึงแสดงผลลัพธ์น้อยกว่า instance สาธารณะ?
engine บางตัวอาจถูกระงับการใช้งาน เมื่อ engine ตอบกลับด้วย CAPTCHA หรือหน้าแจ้งเตือน rate limit ตัว SearXNG จะหยุดส่งคำถามไปยัง engine นั้นเป็นเวลาที่กำหนด ตั้งแต่ 180 วินาทีสำหรับการปฏิเสธทั่วไป ไปจนถึง 1,296,000 วินาทีสำหรับ CAPTCHA ของ Cloudflare หน้าผลลัพธ์จะรายงานเรื่องนี้ภายใต้หัวข้อ "Messages from the search engines" และ /stats/errors จะแสดงรายการความล้มเหลวพร้อมเหตุผลประกอบ ที่อยู่ IP ของศูนย์ข้อมูล (datacentre) มักถูกทำเครื่องหมายเร็วกว่าการเชื่อมต่อจากบ้าน ดังนั้น instance บน VPS ใหม่จึงมักพบปัญหานี้ได้เร็ว
ฉันควรใช้ SearXNG instance สาธารณะหรือรันเองดี?
ให้รันเองหากคุณต้องการควบคุมโค้ดและ log โดยต้องยอมรับว่า engine ต้นทางจะเห็นที่อยู่ IP เดียวสำหรับทุกการค้นหาของคุณ ให้ใช้ instance สาธารณะหากการผสมคำค้นหาของคุณเข้ากับผู้อื่นมีความสำคัญมากกว่าการรู้ว่ามีการบันทึกข้อมูลอะไรไว้บ้าง บน instance สาธารณะ ผู้ดูแลระบบสามารถเห็นข้อความค้นหา, เวลา, ที่อยู่ IP และ user agent ของคุณ และสามารถแก้ไขโค้ดเมื่อใดก็ได้ตามต้องการ นโยบายการบันทึก log ที่ระบุไว้ไม่สามารถตรวจสอบได้จากภายนอก