it-swarm-korea.com

검색 창 UI- "모든 단어", "부분 일치", "정확한 문구"

데스크톱 응용 프로그램 (지루한 회계 자료)을 디자인하고 있으며 "검색 제품"기능이 있습니다.

멋지지만 간단한 '스마트 한'검색 창을 갖고 싶습니다. 현재 검색 상자는 지정된 모든 단어를 분할하고 부분적으로 any와 일치하는 모든 레코드를 찾습니다.

이제 다음과 같은 딜레마에 직면했습니다. 사용자가 any 또는 all 일치하는 단어를 일치 시킬지 지정하는 방법을 제공하고 싶습니다. 좋은 접근 방법은 무엇입니까?

또 다른 문제는 아마 사용자가 정확하게 일치시키기를 원한다는 것입니다. 다시 말하지만 앱을 사용하기 간단하게 만들고 싶습니다.

지금은 방금 세 개의 라디오 버튼을 양식에 던졌지 만 내부가 더럽다고 생각합니다.

21
Leonardo Herrera

구글은 오래 전에이 문제를 해결했다. ;)

선택의 필요성을 제거하고 동시에 세 가지 검색을 수행하는 것이 좋습니다. "정확한 문구", "모든 단어 일치", AND "일치". 그런 다음 결과를 순서대로 통합하고 (SQL "union") 사용자에게 표시하십시오.

드로우 백 :

  • 데이터베이스에 더 많은 부하.

긍정적 :

  • 사용자에게 더 자연 스러움 : 누군가가 여러 단어를 입력하면 대부분 자신이 찾고있는 것을 알고있을 것입니다. 그들은 적어도 하나의 단어를 바로 얻으려고 어둠 속에서 쏘지 않습니다.
  • 검색 엔진에서의 경험과 일치
  • 상호 작용 = 한 번의 클릭으로 시간을 절약 할 수 있습니다.

검색어에서 의미없는 단어를 제거하고 사례/접합 등을 정규화하십시오. 사용자가 검색어를 잘못된 경우/시제/잘못된 기사로 입력하더라도 사용자가 필요로하는 결과를 찾는 데 도움이됩니다.

또한 검색이 키보드로만 작동하는지 확인하십시오 (즉, 사용자가 마우스를 사용하지 않도록하십시오. <search phrase> <Enter>는 결과를 얻기에 충분해야합니다).

26
Erion

내 개인적인 의견은 다음과 같은 이유로 사용자가 검색을 구체화 할 수있는 방법을 제공해야한다는 것입니다.

  1. 당신은 그것을 당신의 목표 ( "정말 원합니다 ...")라고 말했고 어떤 자동 접근 방식을 사용하더라도 사용자는 선택할 수 없습니다.
  2. Gmail (웹 검색보다 자신의 응용 프로그램과 유사한 응용 프로그램)을 사용하면 검색 옵션을 표시하고 세분화 할 수 있습니다.
  3. 일반 Google 검색조차도 사용자가 결과를 수동으로 세분화 할 수 있습니다 (예 : 검색 문자열이 따옴표로 묶이면 전체 검색).
  4. 숙련 된 사용자로서 내 기준을 알고 나에게 자동 결정을 내리고 내가 모르는 알고리즘에 따라 결과를 섞으면 실제로 저에게 효과적입니다.

내가 제안하는 방식은 Chris가 제안한 것과 다소 비슷합니다.

DeepDyve 에서 가져온 것 : alt text

"정제"를 누르면 드롭 목록을 즉시 열거 나 나중에 더 많은 검색 옵션을 추가하려는 경우 작은 대화 상자를 사용할 수도 있습니다.

5
Dan Barak

공간이 주요 관심사 인 경우 드롭 다운 사용을 생각 했습니까? 더 많은 클릭이 필요하기 때문에 훌륭한 솔루션은 아니지만 라디오 버튼 세트보다 공간을 덜 차지합니다.

다른 옵션을 선택할 수 있도록 현재 옵션이 확장기와 함께 나타납니다.

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

(나쁜 아스키 아트 실례)

사용자가 클릭하지 않고 확장기 위로 마우스를 가져 가면 드롭 다운을 수행하는 것이 좋을 수 있지만 다시는 이상적인 솔루션이 아닙니다.

4
ChrisF

검색 옵션을 죽일 것입니다. 사용자가 생각하는 방식이라고 생각하지 않지만 UI 만트라가 진행됨에 따라 실제 사용자로 테스트하고 자신의 생각을 확인하십시오.

일반적으로 검색 엔진은 다음과 같이 우선 순위를 지정합니다.

  1. 모든 것을 시도하고 찾으십시오 (AND)
  2. 개별 단어의 존재를 함께 찾아보십시오
  3. 단어 조각을 찾아보십시오 (줄기-당신은 '차기'와 '차기'도 입력)
2
Julian H

사용자가 그런 종류의 것을 선택하지 않아도 Erion에 확실히 동의하십시오-검색 엔진이 무엇이든간에 당신을 위해 그것을하십시오.

백엔드가 검색에 어떤 기술을 사용하든 원하는 기준 (예 : Google과 동일)에 따라 결과의 우선 순위를 정할 수있는 방법이 있습니다. 일부는 이런 종류의 것들에 대해 다른 것보다 설정하기가 어려울 수 있지만 기본 SQL Server 전체 텍스트 인덱싱조차도 이러한 수준의 검색 결과 구성을 제공 할 수 있습니다.

최상의 사용자 경험을위한 결정을 내리고 엔지니어 (또는 필요한 경우 개발자)가 작동하도록하십시오. 그것이 그들이 거기있는 것입니다. 나는 엔지니어이기도하기 때문에 말할 수 있습니다. :)

1
Charles Boyung

궁금한 점이 있으면 전체 텍스트 검색 엔진이 TD-IDF 점수를 사용하여 가장 일반적으로 작동합니다. 이것은 Term Frequency-Inverse Document Frequency 를 나타냅니다. 요점은 검색어가 매우 자주 나타나는 경우 문서가 더 관련성이 높다는 것입니다.이 단어는 Word에서 전체적으로 나타나는 문서 수에 의해 할인됩니다.

0
CambridgeMike