it-swarm.asia

UI kotak pencarian - "semua kata", "sebagian cocok", "frasa persis"

Saya merancang aplikasi desktop (hal-hal akuntansi yang membosankan) dan saya memiliki fitur "produk pencarian".

Saya ingin memiliki kotak pencarian 'pintar' yang bagus tapi sederhana. Saat ini, kotak pencarian berfungsi dengan memisahkan semua kata yang ditentukan dan mencari semua catatan yang sebagian cocok ada dari mereka.

Sekarang saya dihadapkan dengan dilema berikut: Saya benar-benar ingin memberikan cara untuk menentukan apakah pengguna ingin mencocokkan ada atau semua kata-kata yang ditentukan. Apa yang akan menjadi pendekatan yang baik?

Masalah lain adalah bahwa mungkin pengguna ingin melakukan kecocokan tepat. Sekali lagi, saya ingin aplikasi ini mudah digunakan.

Saat ini saya hanya melemparkan tiga tombol radio ke formulir, tapi saya merasa kotor di dalam ... ada pendapat?

21
Leonardo Herrera

Google telah memecahkan ini sejak lama - tidak ada gunanya menciptakan kembali roda. ;)

Saya sarankan Anda menghapus kebutuhan untuk memilih, dan melakukan tiga pencarian sekaligus: "frasa persis" , "cocokkan semua kata" , AND "cocok dengan" . Kemudian satukan (SQL "union") hasil tersebut dalam urutan itu, dan berikan kepada pengguna.

Kekurangan:

  • lebih banyak memuat pada basis data Anda.

Positif:

  • lebih alami bagi pengguna: jika seseorang memasukkan beberapa kata, kemungkinan besar mereka tahu apa yang mereka cari; mereka tidak menembak dalam gelap mencoba untuk mendapatkan setidaknya satu kata yang benar
  • cocok dengan pengalaman di mesin pencari
  • menghemat satu klik dalam interaksi = menghemat waktu.

Pastikan untuk menghapus kata kebisingan dari frasa pencarian dan menormalkan kasus/konjugasi, dll .; itu akan membantu menemukan hasil yang dibutuhkan pengguna Anda, bahkan jika mereka mengetikkan kata pencarian dalam case/tense/yang salah dengan artikel yang salah.

Pastikan juga pencarian hanya bekerja dengan keyboard (mis. Tanpa memaksa pengguna untuk menggunakan mouse. <search phrase> <Enter> harus cukup untuk mendapatkan hasil).

26
Erion

Pendapat pribadi saya adalah bahwa Anda harus menyediakan cara bagi pengguna untuk mempersempit pencarian, karena:

  1. Anda menyatakannya sebagai tujuan Anda ("Saya benar-benar ingin ...") dan apa pun pendekatan otomatis yang Anda lakukan, Anda tidak akan mengizinkan pengguna untuk memilih.
  2. Gmail (yang merupakan aplikasi - lebih mirip dengan aplikasi Anda sendiri daripada pencarian web) memang memungkinkan Anda untuk menunjukkan dan memperbaiki opsi pencarian.
  3. Bahkan pencarian Google biasa memungkinkan pengguna untuk menyaring hasil secara manual, yaitu jika string pencarian dalam tanda kutip, itu akan mencarinya secara keseluruhan.
  4. Sebagai pengguna yang berpengalaman, jika saya tahu kriteria saya, membuat keputusan otomatis untuk saya dan mengocok hasil saya berdasarkan beberapa algoritma yang saya tidak tahu, benar-benar bekerja melawan saya.

Cara saya menyarankan untuk melakukannya agak mirip dengan apa yang disarankan Chris.

Diambil dari DeepDyvealt text

Setelah Anda menekan "perbaiki", Anda dapat langsung membuka daftar drop, atau bahkan menggunakan dialog kecil jika di masa depan Anda berniat untuk menambahkan lebih banyak opsi pencarian.

5
Dan Barak

Jika ruang menjadi perhatian utama, pernahkah Anda berpikir untuk menggunakan drop down? Meskipun mungkin bukan solusi yang brilian (karena memang membutuhkan lebih banyak klik) itu akan memakan ruang lebih sedikit daripada satu set tombol radio.

Opsi saat ini akan muncul dengan expander untuk memungkinkan pilihan lain.

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

(Maafkan seni ascii buruk)

Perbaikan mungkin untuk melakukan drop down ketika mouse melayang di atas expander daripada pengguna harus mengklik, tetapi sekali lagi itu bukan solusi yang ideal.

4
ChrisF

Saya akan mematikan opsi pencarian - saya tidak berpikir seperti itulah yang dipikirkan pengguna Anda, tetapi, sesuai dengan mantra UI, ujilah dengan pengguna sungguhan dan lihat apa yang mereka pikirkan.

Biasanya mesin pencari memprioritaskan seperti ini:

  1. Coba dan temukan semuanya (DAN)
  2. Coba dan temukan keberadaan kata-kata secara bersamaan
  3. Coba dan temukan fragmen kata-kata (batang - Anda mengetik 'menendang' juga cocok dengan 'tendangan')
2
Julian H

Setuju dengan Erion - tidak perlu memiliki pengguna memilih hal semacam itu - memiliki mesin pencari Anda (apa pun itu) melakukannya untuk Anda.

Tidak masalah teknologi apa yang digunakan back-end Anda untuk pencarian, ada beberapa cara untuk memprioritaskan hasil sesuai dengan kriteria apa pun yang Anda inginkan (mis. Sama seperti Google). Beberapa mungkin lebih sulit untuk diatur daripada yang lain untuk hal semacam ini, tetapi bahkan pengindeksan teks lengkap SQL Server dasar dapat memberikan tingkat organisasi hasil pencarian ini.

Buat saja keputusan untuk pengalaman pengguna terbaik dan minta teknisi Anda (atau pengembang, jika Anda harus) membuatnya bekerja. Untuk itulah mereka ada di sana. Karena saya seorang insinyur juga, saya bisa mengatakan itu :)

1
Charles Boyung

Jika Anda penasaran, mesin pencari teks lengkap paling umum digunakan dengan menggunakan skor TD-IDF. Ini adalah singkatan Term Frequency-Inverse Document Frequency . Intinya adalah bahwa suatu dokumen lebih relevan jika istilah pencarian muncul di dalamnya sangat sering, ini didiskontokan oleh jumlah dokumen yang secara keseluruhan ditampilkan oleh Firman.

0
CambridgeMike