Plugin filter BĐS min/max cho lms.sitetor.com: lọc theo giá / mặt tiền / diện tích
trên toàn bộ tin đăng, hiển thị bảng so sánh tại trang /listing.
- Trích tự động
giá (VND),mặt tiền (m),diện tích (m²)từ tiêu đề + bài viết (parser tiếng Việt:5 tỷ 500,25tr/tháng,3.500 USD,MT 6m,ngang 4,5m,DT 100m2,5x20...), lưu vào topic custom fields dạng số. - Tin mới / sửa bài đầu → parse tự động (hook
topic_created,post_edited). - Tin cũ → backfill 1 lần bằng rake task.
- API
GET /listing/filter.json?q=&price_min=&price_max=&frontage_min=&frontage_max=&area_min=&area_max=&category_id=&sort=&page= - Trang
/listing(chỉ Bán + Cho thuê): từ khóa, loại tin, giá/mặt tiền/diện tích min–max (giá nhập theo triệu), sắp xếp (mới nhất / giá tăng / giá giảm / DT lớn), phân trang nhảy bước1,2,3,4,5…10,15,20…100,200…n, bảng so sánh mobile cuộn ngang. - Link sidebar "Tìm bất động sản" quay về
/listingtừ mọi trang. - Nút "Giới thiệu BĐS của bạn" dưới topic Cần mua/Cần thuê (
sitetor_listing_demand_categories): chọn 1 listing trong tài khoản → tự tạo reply gắn link (onebox) vào nhu cầu.
-
Đưa repo này lên GitHub (private cũng được, dùng deploy key) hoặc copy trực tiếp.
-
Sửa
/var/discourse/containers/app.yml, thêm vàohooks.after_code:- exec: cd: $home/plugins cmd: - git clone https://github.com/<ban>/discourse-sitetor-listing.git
-
Rebuild:
cd /var/discourse ./launcher rebuild app -
Vào Admin → Settings → Plugins, kiểm tra
sitetor listing enabled= true vàsitetor listing categoriesđúng ID category của bạn (mặc định:3412Cho thuê,3722Bán,3344Cần thuê,3698Cần mua). -
Backfill tin cũ (chạy 1 lần, ~14k tin chỉ vài phút):
cd /var/discourse ./launcher enter app rake sitetor_listing:backfill -
Mở
https://lms.sitetor.com/listing— lọc thửGiá 50–100 triệu,Mặt tiền ≥ 6m.
ruby test/parser_test.rb # 15 unit tests
ruby test/real_data_check.rb F # đo tỷ lệ trích trên dữ liệu thật (file JSON)- Topic dạng "Lịch sử chào [tên đường] từ 2015" chứa nhiều căn trong 1 topic nên không có 1 bộ số duy nhất — parser bỏ qua là đúng. Muốn lọc được loại này phải tách mỗi căn 1 topic (hoặc chờ v2: parse bảng trong bài).
- Giá thuê (
triệu/tháng) và giá bán (tỷ) cùng lưu VND — khi lọc nên chọn kèm category để min/max có ý nghĩa.
- Nút Apply: chủ listing chọn tin trong tài khoản để gắn vào topic nhu cầu.
- Form Template khi đăng tin mới → dữ liệu chuẩn 100% không cần parse.
- Cột giá/m², hướng, SĐT chủ nhà (9 cột như spec gốc trên Meta).