1 điểm bởi GN⁺ 2024-04-07 | 2 bình luận | Chia sẻ qua WhatsApp
  • SearXNG là một công cụ meta-search xử lý nhiều nguồn tìm kiếm và không theo dõi hay lập hồ sơ người dùng
  • Việc cài đặt được thực hiện theo Installation guide chính thức, và nên tham khảo Configuration guide để tinh chỉnh chi tiết
  • Có thể xem thêm cách sử dụng liên quan đến vận hành và quản trị trong khu vực admin của tài liệu SearXNG
  • Kênh kết nối cộng đồng là phòng Matrix #searxng:matrix.org
  • Dự án được cấp phép theo GNU Affero General Public LicenseAGPL-3.0

Vai trò của SearXNG

  • SearXNG là một metasearch engine
  • Người dùng không bị theo dõi hay lập hồ sơ trên SearXNG

Cài đặt và cấu hình

Cộng đồng và đóng góp

  • Có thể đặt câu hỏi hoặc kết nối với cộng đồng qua kênh Matrix #searxng:matrix.org
  • Chi tiết liên quan đến đóng góp được hướng dẫn trong CONTRIBUTING

Giấy phép

  • Dự án này được phát hành theo GNU Affero General Public License
  • Có thể xem chi tiết giấy phép tại LICENSE

2 bình luận

 
GN⁺ 2024-04-07
Ý kiến trên Hacker News
  • Nếu muốn tìm kiếm trong toàn bộ nội dung các trang trong lịch sử duyệt web, hoặc chỉ một số trang đã đánh dấu bookmark, hãy xem DownloadNet. Tên cũ, và có lẽ là tên sẽ được dùng lại, là "DiskerNet"
    Nó gắn vào trình duyệt để cung cấp trải nghiệm duyệt mở rộng, còn UI thì đơn giản kiểu Google năm 1997 không có CSS. Tìm kiếm hiện cũng chưa làm được những thứ phức tạp, nhưng sau này có thể, và hiện giờ đã khá hữu dụng
    https://github.com/dosyago/DownloadNet
    Nó cũng cho phép xem ngoại tuyến tất cả nội dung đã truy cập hoặc đã bookmark. Rất hợp để vừa duyệt như bình thường vừa lưu lại trong những môi trường cần tiết kiệm băng thông vệ tinh như giàn khoan dầu, tàu biển, vận tải hàng hóa đường dài

    • Không thấy tài liệu nào nói về việc hỗ trợ trình duyệt nào
    • Tôi không hiểu vì sao một người có chút quan tâm đến chủ đề bài này lại muốn trở thành “nhà lưu trữ tổng quản cho việc duyệt Internet của chính mình”
      Những gì liên quan đến việc duyệt Internet của tôi thì tôi muốn không có gì lưu giữ ngoài bộ não con người của tôi. Tất nhiên đó là tiêu chuẩn của tôi
      Nhưng tôi không hiểu vì sao màn quảng bá lộ liễu như thế này, hơn cả chuyện lạc đề, lại phù hợp ở đây khi nó là một công cụ đi ngược hoàn toàn với quyền riêng tư cá nhân tuyệt đối
    • Cái này hơn YaCy ở điểm nào?
  • Gợi nhớ thời xưa. Trước Google, người ta dùng các công cụ tìm kiếm meta để tăng cơ hội tìm được câu trả lời ổn giữa kết quả tìm kiếm đầy spam từ những nơi như AltaVista, HotBot, Lycos

    • Không chỉ để tránh spam; một số công cụ tìm kiếm meta, tôi nhớ là Dogpile, còn có thể tìm trong các công cụ tìm kiếm chuyên biệt như White Pages hay Yellow Pages. Đó là thời rất lâu trước khi những thứ như Yelp xuất hiện, nên có thể tìm được danh bạ doanh nghiệp và thông tin liên hệ vốn khó xuất hiện trên các công cụ tìm kiếm web thông thường
      Nó cũng có thể bao gồm cả kết quả tìm kiếm FTP, và thời đó FTP ẩn danh công khai vẫn còn phổ biến nên khá hữu ích
    • Hoài niệm thật. Sau vài chục năm, giờ nó quay lại dưới danh nghĩa quyền riêng tư số
    • Tôi từng thích Copernic. Đó là công cụ tìm kiếm meta native cho Windows 9x
    • Northern Light cũng khá ổn
    • Cũng có Dogpile nữa
  • Cái này cũng đáng thử. Không phải Kagi, nhưng kết quả tìm kiếm khá tốt và có thể tự host bằng Docker
    https://felladrin-minisearch.hf.space/

  • Hay. Ước gì có cách chặn để một số domain nhất định tuyệt đối không bao giờ xuất hiện trong kết quả tìm kiếm
    Sửa: Có vẻ đã có issue mở rồi
    https://github.com/searxng/searxng/issues/2351

    • Để tham khảo, tôi là một trong các maintainer
      Mục tiêu của SearXNG là hoạt động không lưu trạng thái, không có session phía máy chủ, và vẫn chạy được khi không có JavaScript
      Tuy nhiên cách tiếp cận này bị hạn chế một số tính năng do giới hạn kích thước cookie. Các dạng lưu trữ khác trong trình duyệt đều cần JavaScript
    • Google từng có tính năng đó nhưng đã ngừng
      Giờ vẫn có thể làm nếu tự thêm điều kiện loại trừ mỗi lần tìm kiếm, nhưng danh sách có thể dài ra và khó nói là trải nghiệm người dùng tốt
      Kagi có sẵn tính năng này và dùng tiện
      Cũng có thể dùng tiện ích trình duyệt uBlacklist. Nhưng với tôi, vấn đề là mọi thứ đều chậm đi
      Tôi không chắc, nhưng có vẻ nó lọc các kết quả thực tế sau khi tìm kiếm xong. Hai cách nói trên thì hạn chế để ngay từ đầu chúng không nằm trong kết quả
    • uBlacklist làm đúng việc đó với Google và một vài công cụ tìm kiếm khác
      Tôi đang dùng trên Firefox để lọc đống linh tinh từ Pinterest khỏi kết quả tìm kiếm, và cũng có bản cho Chrome lẫn Safari
      https://github.com/iorate/ublacklist
    • Kagi có tính năng đó
  • Nếu chạy cái này trên đường truyền Internet cá nhân, có nguy cơ bạn sẽ không dùng được các công cụ tìm kiếm nữa

    • Chỉ như vậy khi bạn để lộ công khai không có xác thực và route các truy vấn qua đường truyền dân dụng, mà đó không phải cấu hình được khuyến nghị
      Nếu dùng cá nhân thì có thể chạy trực tiếp trên máy của mình hoặc truy cập qua VPN. Các truy vấn đi tới công cụ tìm kiếm upstream có thể được gửi qua proxy hoặc VPN khi cần
      Một số hoạt động tốt cả qua Tor, một số có thể gửi qua tunnel thương mại hoặc tự dựng
    • Phần này có vẻ cần giải thích nhiều hơn hẳn so với những gì trong thread này
      Nếu chạy local và chỉ mình bạn dùng thì sẽ không bị chặn. Từ góc nhìn của công cụ tìm kiếm đó, số lượng request trông gần như giống khi bạn dùng trực tiếp
      Ngay cả khi thêm vài người trong nhà dùng thì vẫn ổn
      Tôi từng chạy searx cũ ở local khoảng 1–2 năm và không gặp vấn đề gì
    • Có thể giải thích chi tiết hơn không?
  • Có nhiều instance searx được host công khai. Trên mạng cũng có danh sách instance công khai, và nếu muốn một công cụ gửi mỗi lượt tìm kiếm từ thanh địa chỉ trình duyệt tới một instance ngẫu nhiên thì có thể dùng neocities: https://searx.neocities.org/changelog
    Tôi dùng thường xuyên. Nhược điểm là đôi khi gặp phải instance không trả kết quả nào hoặc kết quả rất tệ. Gần đây chuyện này ít xảy ra hơn

  • SearXNG rất tuyệt, nhưng có vài điểm cần lưu ý
    Nếu chạy nó cùng trên máy cung cấp NAT cho nhiều thiết bị, việc này giúp tránh bị các công cụ tìm kiếm upstream chặn như DuckDuckGo. Nếu không thể chạy trên một IP cũng dùng cho mục đích khác, sẽ tốt hơn nếu có tính năng gửi truy cập tới một số công cụ tìm kiếm upstream qua proxy riêng. Vấn đề này rất phổ biến
    Tôi muốn có chế độ tìm kiếm đúng nguyên văn 100%, trong đó mọi từ tôi nhập đều bắt buộc phải có chính xác như vậy trong kết quả. Có lẽ tương đương với việc thêm "+" trước từng từ và đặt từng từ trong ngoặc kép. Thật khó chịu khi việc thay đổi từ mà tôi không hề muốn cứ tiếp diễn chỉ vì có ít kết quả
    Như đã nói ở nơi khác, tôi muốn loại trừ rõ ràng một số domain nhất định. Tôi hiểu SearXNG muốn không lưu trạng thái, nhưng cũng có thể cấu hình bằng URL riêng hoặc thiết lập để áp dụng cho mọi tìm kiếm. Ví dụ khi tìm một sách hướng dẫn PDF nào đó, tôi tuyệt đối không muốn thấy các trang như "manualslib.com"
    Tôi mong những điều này được giải quyết, nhưng ngoài ra thì việc chạy SearXNG và khuyên mọi người dùng thay Google đã hoạt động khá tốt

  • Mọi người đều quảng bá Searx, nhưng cá nhân tôi thích presearch.com
    Tôi không có liên kết hay lợi ích tài chính nào. Tôi cũng không quan tâm đến mô hình kinh doanh dựa trên tiền mã hóa của họ
    Thực ra, tôi nghĩ việc họ thiếu kiểu lọc kết quả tìm kiếm như Google hay Bing không phải là lập trường bảo vệ tự do ngôn luận gì, mà là do thiếu vốn hoặc vì có những ưu tiên khác quan trọng hơn cho sự thành công. Nó giống giai đoạn đầu của Internet, khi các công ty tập trung vào làm cho mọi thứ chạy được trước, thay vì chỉ hiển thị cảm xúc tốt đẹp phục vụ PR hay những lời lẽ đúng đắn
    Dù sao, khi tìm các chủ đề mà Google có vẻ sẽ lọc mạnh, hoặc những thứ khó hiểu, tôi xem presearch để có góc nhìn thứ hai. Ước gì archive.org cũng làm được điều tương tự. archive.org có lượng dữ liệu khổng lồ, nhưng khả năng lập chỉ mục và tìm kiếm không tốt

  • Đây là công cụ tôi thích nhất để lấy trung bình các kết quả tệ hại riêng lẻ của những công cụ tìm kiếm chính thống, rồi biến chúng thành kết quả tạm dùng được

  • Trong suốt một năm qua tôi đặt nó làm mặc định trên mọi thiết bị và rất hài lòng. Chỉ bị chặn đúng hai lần, và chỉ cần cập nhật là lại chạy tốt

 
Các ý kiến trên Hacker News
  • Tôi là tác giả ban đầu của Searx, nhưng không còn tham gia phát triển nữa vì những giới hạn của khái niệm metasearch. Dự án tìm kiếm mới là https://github.com/asciimoo/hister (https://hister.org/)
    Hister là một trình lập chỉ mục chuyên biệt cho website và tệp cục bộ, tự động lưu các trang đã truy cập do trình duyệt render
    Vì lưu toàn bộ nội dung trang, nó có thể xem trước kết quả ngoại tuyến và cung cấp toàn bộ trang thông qua MCP
    Có thể xem ví dụ sử dụng MCP tại đây: https://hister.org/posts/give-your-ai-assistant-a-private-me...

    • Tôi đã tìm cách bổ sung thông tin hữu ích cho LLM tự host và các công cụ agent. Các công cụ metasearch như SearXNG giúp giảm khả năng bị phát hiện bot khi tìm thông tin, nhưng thường thứ tôi muốn đưa vào công cụ lại là thông tin tôi đã tìm thấy, đã đọc hoặc đã xem
      Tôi kết luận rằng cấu hình lý tưởng với mình là một kho lưu trữ nội dung tự host, trích xuất và lưu nội dung trang web cùng metadata bằng công cụ tìm kiếm và tiện ích mở rộng trình duyệt; nếu có thể, tôi cũng muốn chia sẻ nội dung theo kiểu liên hợp và nhập các nội dung Creative Commons như Wikipedia, Gutenberg
      Hister trông gần như đúng với thứ tôi muốn, và tôi muốn thử kiểm toán mã rồi triển khai trong vài tuần tới
    • Hister khá gần với thứ tôi đã muốn từ lâu nhưng chưa tự làm được. Phần lớn việc tôi làm với công cụ tìm kiếm là tìm lại thứ đã từng xem, nên nếu có thể tìm nhanh ở local thì sẽ rất tuyệt
    • Tôi cũng đang tự dùng một dạng công cụ tìm kiếm
      Nó chỉ tải xuống tiêu đề, mô tả, thumbnail và các trường Open Graph phổ biến, nên tôi cho rằng chỉ mục khá nhẹ. Số trang đã crawl là 2 triệu
      https://github.com/rumca-js/Internet-Places-Database
      Hỗ trợ thẻ và tính năng bình chọn
      Gần đây tôi cũng đã phát hành ứng dụng F-Droid đầu tiên
      https://github.com/rumca-js/OfflineWebSearch
      https://f-droid.org/en/packages/io.github.rumcajs.offlineweb...
    • Trông hay đấy, nhưng tôi cũng muốn biết bạn có thể giải thích thêm những giới hạn của khái niệm metasearch là gì không
    • Khoảng 20 năm trước, một người bạn của tôi từng tạo một proxy cục bộ để thu thập toàn bộ lưu lượng web và dùng như trí nhớ dài hạn. Nó có giao diện web, nên có thể nhanh chóng tìm thứ đã xem khoảng mười ngày trước, hoặc một thuật toán cụ thể nào đó chợt nhớ ra nhưng không nhớ tên
      Tôi đã gom các liên kết linh tinh liên quan đến công việc trong nhiều năm và dùng hằng ngày, như kiểu lôi thỏ ra khỏi mũ để trả lời các câu hỏi ngẫu nhiên của bạn bè hoặc đồng nghiệp. Ví dụ, nếu ai hỏi ý tưởng bảng màu cho biểu đồ dữ liệu, tôi có thể đưa ngay nghiên cứu khoa học liên quan; các thuật toán ít được biết đến cũng vậy
      Theo thời gian bộ sưu tập đã khá lớn nên việc tìm đúng thứ trở nên rất phiền, tôi tò mò không biết dự án này có phù hợp với vấn đề của mình không
  • Cái này trông như công cụ cốt lõi để cung cấp tìm kiếm cho mô hình local
    Tôi tò mò người khác đang cung cấp tính năng này bằng cấu hình nào
    Kể từ khi có mô hình Gemma 24 tỷ tham số đã lượng tử hóa, việc gọi công cụ trên 4070 Ti Super chạy tốt; nhờ các lần gọi công cụ thành công, môi trường local cuối cùng cũng trở nên dùng được
    Lưu ý là tôi đang nói trong bối cảnh chung, không phải riêng cho coding

    • Có một chế độ JSON cần bật trong phần cài đặt; khi đó có thể tương tác bằng một script Python đơn giản, hoặc để agent xử lý bằng curljq
      Nó nằm ở cuối trang này: https://docs.searxng.org/admin/settings/settings_search.html
    • Tôi dùng TinySearch MCP. Tuy vậy nếu dùng Unsloth Studio thì nó gọi HTML API của DuckDuckGo thay vào đó, và hoạt động khá tốt
    • Tôi cũng tò mò một AI stack hoàn toàn local gồm cả tìm kiếm web và các công cụ khác sẽ trông như thế nào. Nhìn thì SearX không tích hợp sẵn MCP server, nên chẳng hạn không thể gọi trực tiếp từ llama-server
      Open WebUI có tích hợp SearX và các nhà cung cấp khác, nhưng kết quả tôi nhận được không mấy ấn tượng
    • Tôi muốn biết bạn có đang chạy mô hình lượng tử hóa không. Một người bạn có 4080 muốn thử thí nghiệm với mô hình local; card đó chắc tương tự, nên nếu có thể chia sẻ thêm về cấu hình thì tốt quá
  • Tôi đã dùng SearXNG làm công cụ tìm kiếm Internet mặc định hơn 5 năm, và cũng để sẵn các phương án thay thế như backend YaCy. Với cấu hình này, tôi cũng đang xây dựng tìm kiếm tài liệu nội bộ hoặc ứng dụng RAG; SearXNG cũng hỗ trợ kết quả JSON
    Tuy nhiên có những nhược điểm phải chấp nhận vì quyền riêng tư. Nó chậm hơn và chất lượng kết quả kém hơn các công cụ tìm kiếm khác, nhưng với phần lớn truy vấn thì đủ nhanh và đủ tốt
    Đôi khi bị chặn bởi các công cụ tìm kiếm như DuckDuckGo, Brave và phải giải CAPTCHA; nếu lấy API key để dùng thì có thể tránh được việc này
    Nếu dùng backend riêng, bạn có thể ưu tiên kết quả, chẳng hạn nếu đã crawl small web hoặc các trang quan trọng với bạn, các trang đó sẽ xuất hiện ở đầu kết quả tìm kiếm

    • Tôi cũng dùng SearXNG hằng ngày hơn 5 năm rồi
      Tôi thắc mắc là bạn tự chạy instance YaCy “rất nhanh”, hay có cấu hình cụ thể nào đó
      Theo kinh nghiệm của tôi, YaCy kiểu như stream kết quả chậm rãi trong khoảng 30 giây, nên không hợp lắm làm backend cho SearX
      Tôi cũng cung cấp các tệp ZIM như Wikipedia, Wiktionary, Gutenberg, ArchWiki bằng kiwix-serve cục bộ, nhưng công cụ tìm kiếm Kiwix [0] cũng trả về quá nhiều kết quả và làm bẩn trang kết quả của SearX, nên không hợp làm backend
      Tôi vẫn chưa thử nối SearX với một instance Recoll cục bộ [1]. Recoll không hỗ trợ lập chỉ mục tệp ZIM, nhưng có thể hữu ích với các tài liệu HTML lưu trữ khác
      Tìm kiếm là thứ khó làm cho đúng, nên nếu có cấu hình nào thực sự chạy tốt thì tôi muốn biết thêm
      [0] https://kiwix-tools.readthedocs.io/en/latest/kiwix-serve.htm...
      [1] https://docs.searxng.org/dev/engines/online/recoll.html
  • Tôi đã dùng SearXNG vài năm nay. Vì kiểm duyệt mạng phi nhân đạo của GFW và cơ chế phát hiện proxy của các công cụ tìm kiếm, tôi không tự vận hành instance mà dựa vào danh sách instance công khai [1] và libredirect [2]
    Dịch vụ của một instance đơn lẻ không được đảm bảo, nhưng có thể chuyển sang instance khả dụng khác trong vòng 1 phút với gần như không tốn chi phí
    Khó nói rằng SearXNG giúp thoát Google. Vì metasearch engine phải gọi các công cụ tìm kiếm khác như Google để thu thập kết quả
    Dù vậy, dùng SearXNG thì có thể nhanh chóng tránh được những thứ như tóm tắt bằng AI
    [1] https://searx.space
    [2] https://github.com/libredirect/browser_extension

    • Với các instance công khai, ngày nay phải thử qua khá nhiều cái mới biết cái nào hoạt động ổn. SearXNG cần quản lý chất lượng tốt hơn
      Thỉnh thoảng phải vào phần cài đặt để tắt các công cụ tìm kiếm không hoạt động, hoặc chọn các engine chạy tốt. Thường là vì instance bị chặn, nên có vấn đề về độ tin cậy
      Engine nào hoạt động lại khác nhau tùy từng instance công khai, nên lưu hash cấu hình cũng không phải lúc nào dùng được
      Sẽ tốt hơn nếu SearXNG tự động điều chỉnh các công cụ tìm kiếm hiển thị dựa trên độ tin cậy, hoặc cung cấp tùy chọn như vậy
  • Tôi đã tự host và dùng làm engine mặc định cho mọi tìm kiếm trong vài năm nay, rất khuyến nghị

    • Gần đây tôi nhận ra giá Exa khá đắt, nên chắc sẽ thử SearXNG. Đặc biệt là khi mỗi lần tìm kiếm lấy 30–40 nguồn; tôi dùng làm mặc định rồi bị sốc khi nhận hóa đơn
  • TinySearch bọc SearXNG và hoạt động tốt cho agent. Nó tốt hơn MCP SearXNG native, vì tối ưu ngữ cảnh trước khi đến agent nên không lãng phí token
    https://github.com/MarcellM01/TinySearch

    • Lần cuối tôi kiểm tra thì SearXNG không có máy chủ MCP tích hợp
  • Kết nối với Brave Search API thì hoạt động tốt, nhưng nếu dùng như scraper thì khá bất ổn. Google đã không còn hoạt động từ vài ngày trước

  • Tôi đã tạo https://github.com/denysvitali/searxng-mcp để dùng làm MCP cho coding agent. Nó hoạt động rất tốt cho đến khi bị giới hạn yêu cầu từ nhà cung cấp, ví dụ DuckDuckGo
    Để chạy thì cũng cần máy chủ SearXNG, nên gần đây tôi đã chuyển hướng sang giải pháp độc lập là https://github.com/denysvitali/search-mcp

    • Tôi đã làm một thứ tương tự ([1]) và có thể bạn sẽ thấy thú vị. Nó giống dự án của bạn, nhưng có điểm khác thú vị là bundle sẵn searxng bên trong, nên không cần chạy hoặc tìm một instance SearXNG riêng
      [1]: https://github.com/nikvdp/searxng-ai-kit
  • Tôi đã rất thích SearXNG từ lâu. Sự ác cảm với Google ngày càng lớn, và việc có thể tìm kiếm mà tránh những thứ như một mô hình AI nhỏ bị cài vào PC của mình khi chưa có sự đồng ý là rất tuyệt

  • Tôi luôn thích công cụ này, nhưng vẫn khá phân vân rằng việc gửi truy vấn tìm kiếm không phải cho một công ty mà cho 280 công ty thì giúp ích cho quyền riêng tư đến mức nào