it-swarm-vi.com

UI hộp tìm kiếm - "tất cả các từ", "khớp một phần", "cụm từ chính xác"

Tôi đang thiết kế một ứng dụng máy tính để bàn (công cụ kế toán nhàm chán) và tôi có tính năng "sản phẩm tìm kiếm".

Tôi muốn có một hộp tìm kiếm 'thông minh' đẹp nhưng đơn giản. Hiện tại, hộp tìm kiếm hoạt động bằng cách chia tất cả các từ được chỉ định và tìm tất cả các bản ghi khớp một phần bất kỳ trong số chúng.

Bây giờ tôi phải đối mặt với tình huống khó xử sau: Tôi thực sự muốn cung cấp một cách để chỉ định xem người dùng có muốn khớp bất kỳ hoặc tất cả các từ được chỉ định. Điều gì sẽ là một cách tiếp cận tốt?

Một vấn đề khác là có thể người dùng muốn thực hiện khớp chính xác. Một lần nữa, tôi muốn ứng dụng đơn giản để sử dụng.

Hiện tại tôi chỉ cần ném ba nút radio vào biểu mẫu, nhưng tôi cảm thấy bẩn bên trong ... có ý kiến ​​gì không?

21
Leonardo Herrera

Google đã giải quyết điều này từ lâu - không sử dụng phát minh lại bánh xe. ;)

Tôi khuyên bạn nên loại bỏ nhu cầu chọn và thực hiện ba tìm kiếm cùng một lúc: "cụm từ chính xác" , "khớp tất cả các từ" , VÀ "khớp bất kỳ" . Sau đó hợp nhất (SQL "union") những kết quả theo thứ tự đó và trình bày chúng cho người dùng.

Nhược điểm:

  • tải nhiều hơn trên cơ sở dữ liệu của bạn.

Tích cực:

  • tự nhiên hơn cho người dùng: nếu ai đó nhập nhiều từ, có lẽ họ biết những gì họ đang tìm kiếm; họ không bắn trong bóng tối để cố lấy ít nhất một từ đúng
  • phù hợp với kinh nghiệm trên các công cụ tìm kiếm
  • tiết kiệm một cú nhấp chuột trong tương tác = tiết kiệm thời gian.

Đảm bảo xóa các từ nhiễu khỏi cụm từ tìm kiếm và chuẩn hóa các trường hợp/cách chia, v.v.; nó sẽ giúp tìm ra kết quả mà người dùng của bạn cần, ngay cả khi họ gõ các từ tìm kiếm trong trường hợp sai/căng thẳng/với bài viết sai.

Đồng thời đảm bảo tìm kiếm chỉ hoạt động với bàn phím (nghĩa là không bắt buộc người dùng sử dụng chuột. <search phrase> <Enter> nên là đủ để có kết quả).

26
Erion

Ý kiến ​​cá nhân của tôi là bạn nên cung cấp một cách để người dùng tinh chỉnh tìm kiếm, bởi vì:

  1. Bạn đã tuyên bố đó là mục tiêu của mình ("Tôi thực sự muốn ...") và cho dù bạn sử dụng phương pháp tự động nào, bạn sẽ không cho phép người dùng lựa chọn.
  2. Gmail (là một ứng dụng - tương tự như ứng dụng của bạn hơn là tìm kiếm trên web) cho phép bạn hiển thị và tinh chỉnh các tùy chọn tìm kiếm.
  3. Ngay cả tìm kiếm Google thông thường cũng cho phép người dùng tinh chỉnh kết quả theo cách thủ công, tức là nếu chuỗi tìm kiếm nằm trong dấu ngoặc kép, nó sẽ tìm kiếm toàn bộ.
  4. Là một người dùng có kinh nghiệm, nếu tôi biết các tiêu chí của mình, đưa ra quyết định tự động cho tôi và xáo trộn kết quả của tôi theo một số thuật toán tôi không biết, thực sự có tác dụng với tôi.

Cách tôi đề xuất để làm điều đó có phần giống với những gì Chris đề xuất.

Lấy từ DeepDyvealt text

Khi bạn nhấn "tinh chỉnh", bạn có thể mở danh sách thả ngay lập tức hoặc thậm chí sử dụng một hộp thoại nhỏ nếu trong tương lai bạn dự định thêm nhiều tùy chọn tìm kiếm.

5
Dan Barak

Nếu không gian là mối quan tâm chính bạn đã nghĩ đến việc sử dụng thả xuống? Mặc dù có lẽ không phải là một giải pháp tuyệt vời (vì nó đòi hỏi nhiều nhấp chuột hơn) nhưng nó sẽ chiếm ít không gian hơn một bộ nút radio.

Tùy chọn hiện tại sẽ xuất hiện cùng với thiết bị mở rộng để cho phép các lựa chọn khác.

       +-----------------+---+ +---------------------+ +----+
Search | exact phrase    | V | |                     | | Go |
       +-----------------+---+ +---------------------+ +----+
       | all words           |
       | any words           |
       | exact phrase        |
       +---------------------+

(xin lỗi nghệ thuật ascii xấu)

Một sàng lọc có thể là để thực hiện thả xuống khi chuột di chuyển qua thiết bị mở rộng thay vì người dùng phải nhấp, nhưng một lần nữa, đây không phải là một giải pháp lý tưởng.

4
ChrisF

Tôi sẽ giết các tùy chọn tìm kiếm - Tôi không nghĩ đó là cách người dùng của bạn nghĩ, nhưng, như câu thần chú UI, hãy kiểm tra nó với người dùng thực và xem họ nghĩ gì.

Thông thường các công cụ tìm kiếm ưu tiên như thế này:

  1. Hãy thử và tìm toàn bộ (AND)
  2. Hãy thử và tìm sự hiện diện của các từ riêng lẻ với nhau
  3. Hãy thử và tìm các đoạn của từ (bắt nguồn - bạn nhập 'kicking' nó cũng khớp với 'kick')
2
Julian H

Chắc chắn đồng ý với Erion - không cần người dùng chọn loại điều đó - có công cụ tìm kiếm của bạn (bất kể đó là gì) làm điều đó cho bạn.

Bất kể công nghệ mà back-end của bạn đang sử dụng để tìm kiếm là gì, vẫn có cách để nó ưu tiên kết quả theo bất kỳ tiêu chí nào bạn muốn (ví dụ như Google làm). Một số có thể khó thiết lập hơn những thứ khác cho loại điều này, nhưng ngay cả một lập chỉ mục toàn văn bản SQL Server cơ bản cũng có thể cung cấp mức độ tổ chức kết quả tìm kiếm này.

Chỉ cần đưa ra quyết định cho trải nghiệm người dùng tốt nhất và yêu cầu các kỹ sư của bạn (hoặc nhà phát triển, nếu bạn phải) làm cho nó hoạt động. Đó là những gì họ đang ở đó. Vì tôi cũng là một kỹ sư, tôi có thể nói vậy :)

1
Charles Boyung

Nếu bạn tò mò, các công cụ tìm kiếm toàn văn hoạt động phổ biến nhất bằng cách sử dụng tính năng ghi điểm TD-IDF. Chữ này là viết tắt của Tần số tài liệu nghịch đảo tần số . Gist là một tài liệu có liên quan hơn nếu cụm từ tìm kiếm xuất hiện trong đó rất thường xuyên, điều này được giảm giá bởi số lượng tài liệu mà Word xuất hiện nói chung.

0
CambridgeMike