Searching user:<username> returns the wrong posts when the username starts with "me"

Đang mở
#1,665 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 6 ngày

Chưa có ai nhận issue này.

  • #1667 của @granbellllc-png — đã đóng, không merge

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
go
Lĩnh vực
search

Hướng nghiên cứu

The issue identifies the search parser’s strings.Contains(q, "user:me") check and says the bug occurs before search plugins run; it does not name the parser file or an existing test. Start by locating that check and the search parser tests, then verify that user:me still means the current user while user:melissa returns only melissa’s posts. The author says they have a fix and plan to open a pull request, so check for that work before starting.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Describe the bug

The search tips say user:username searches by author. For any username that starts with me (melissa, megan, meng, mei, ...) the search is treated as user:me instead. A visitor gets results from every author, a signed-in user gets only their own posts, and the rest of the username (lissa) is searched as a word.

The search parser checks strings.Contains(q, "user:me") before it looks up the username, so user:melissa matches that check. This happens before the search plugin is called, so it affects the built-in search and the search plugins alike.

To Reproduce

  1. Create two users, melissa and bob.
  2. As melissa, ask "Which port does the parking service use". As bob, ask "Where is the store service configuration".
  3. Search user:bob: one result, bob's question.
  4. Search user:melissa: no results.
  5. Search user:melissa service while signed out: two results, melissa's and bob's question.

I ran this against dev at ec5e0e9 (SQLite, installed with the AUTO_INSTALL environment variables), calling GET /answer/api/v1/search?order=newest the way the search box does:

q='user:bob' as anonymous               count 1  authors [bob]
q='user:melissa' as anonymous           count 0  authors []
q='user:melissa' as admin               count 0  authors []
q='user:melissa service' as anonymous   count 2  authors [melissa, bob]
q='user:me' as melissa                  count 1  authors [melissa]

Expected behavior

user:melissa returns melissa's posts, the same way user:bob returns bob's. Only user:me itself should mean the current user.

Screenshots

None, the output above is from the API.

Platform

  • Device: Desktop (API calls with curl)
  • OS: Linux (Docker, golang:1.25)
  • Browser and version: not used
  • Version: dev at ec5e0e9; the same check is on main

I have a fix with a test and will open a pull request for it.

Ngôn ngữ chính
Go
Star
15.7k
Fork
1.4k
Merge trung bình
9 ngày 6 giờ
Pull request đã merge (30 ngày)
8

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/answer

Tất cả issue của apache/answer

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.