商业应用程序:搜索表单的基本特征是什么?
在典型的业务应用程序中,用于搜索的表单是很常见的。
一些基本功能包括:
- 包含搜索条件的窗格
- 用于显示结果的网格
- 在网格上排序
- 在结果网格中选择项目时打开的详细信息页面
您还希望业务应用程序的搜索功能具有哪些其他功能?
In a typical business application it is quite common to have forms that are used for searching.
Some basic features are:
- A pane that contains the search criteria
- A grid to display the results
- Sorting on the grid
- A detail page that opens when an item is selected in the results grid
What other features would you expect in a business application's search functionality?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(16)
注意不要显示无权用户查看的结果(角色/权限/访问权限)。
如果用户尝试绕过搜索页面链接并直接输入某些文档,请再次检查权限。
Watch out not to display results a user is not authorized to see (roles / permissions / access rights).
In case a user attempts to circumvent the search page links and enter some document directly, again, check out for permissions.
验证,验证,验证。
对我来说,运行一个没有意义的查询应该是非常困难的,几乎是不可能的。即开始日期发生在结束日期之后。
Validation, validation, validation.
It should be very hard, near impossible, for me to run a query that makes no sense. ie, start date occurring after an end date.
将数字数据集(即使它只有一个数字列 - 所以默认情况下如此)导出为 CSV 以导入 Excel(人们喜欢这个功能,即使似乎只有 1% 的用户经常使用它。问问自己上次突出显示用于复制粘贴的内容是什么时候。打开 CSV 会更容易吗?
(想想 Google 对网站的使用:-)。不知道的人不会知道它不存在。
可以选择显示 1 条记录、5 条记录、100 条记录、1000 条记录等。我相信“分页”是我们最常所说的;)。
您提到了可排序的网格。其他人提到了自动求和或自动计数。如果(再次)您拥有大量数字数据,那么这些都是很好的。但这些几乎都是面向报告的功能。
希望这有帮助。
Export a numerical dataset (even if it only has one numeric column - so just make it so by default) to CSV for import into Excel (people love this function, even if only 1% of users seem to use it with any regularity. Just ask yourself when's the last time you highlighted something for copy-n-paste. Would it have been easier to open a CSV?
Refinable searches (think Google's use of site: -). People who use the search utility a lot will appreciate this. People who don't won't know it's not there.
The ability to choose to display 1 records, 5 records, 100 records, 1000 records, etc. "Paging" I believe is what we most commonly call it ;).
You mentioned sortable grids. Somebody else mentioned auto-sum or auto-count. Those are good if (once again) you have largely numeric data. But those are almost report-oriented functions.
Hope this helps.
您可以做的一件事是用简单的英语下拉显示最常见的搜索。例如“过去 5 天内纽约的高额销售额”。这相当于用户方便地选择金额、城市、日期范围等。
另一件事是根据用户的视角拥有多个搜索条件选项卡。像“销售搜索”、“报告搜索”、“管理搜索”等。
还要考虑限制搜索中检索到的条目数量,并允许用户进行更窄的搜索。但这取决于业务需求。
One thing you can do is have a drop down of most common searches in plain english. e.g. "High value sales in New York in last 5 days". This is the equivalent of user selecting an amount, the city, date ranges etc. done conveniently for them.
Another thing is to have multiple search criteria tabs based on perspective of the user. Like "sales search", "reporting search", "admin search" etc.
ALso consider limiting the number of entries retrieved in the search and allow users to do more narrow searches. This depends on the business needs however.
最常用的搜索选项首先列出并位于显着位置。
The most commonly used search option listed first and in a prominent location.
我觉得你的要求很好。借鉴谷歌的经验。谷歌做对了。您可以在一个文本框中输入您想要的任何内容,然后您的引擎就会输出答案。大多数人都会尝试这个,如果答案足够好,那么他们就会使用这个。在后端,您可能希望将所有数据扁平化到一个大表中,然后对其进行索引或使用其中包含“LIKE”的 SQL 查询。
但是,您可能希望允许用户优化搜索。为此,请提供“高级搜索”的链接,并使用其中的表单来指定过滤条件。如果基本搜索不够好,这可以让用户将结果归零。对于该页面上的结果,您当然希望对关键字段进行排序,但请在生成初始结果集之后进行。
I think your requirements are good. Take a cue from Google. Google got it right. One text box where you type whatever you want, and your engine spits out the answers. Most folks will try this, and if the answers are good enough, then that is what they will use. In the back-end, you'll probably want to flatten all of the data into a big honkin' table and then index it or use a SQL query with "LIKE" in it.
However, you will probably want to allow the user to refine the search. For this, have a link to "Advanced Search" and use a form there to specify filter criteria. This lets the user zero in on the results if basic search is not good enough. For the results on th is page, you will certainly want to have sorting on key fields, but do it after you have produced the initial result set.
这取决于您正在搜索的内容......使其相关:)搜索总是看起来很容易,但要正确进行却非常困难。
It depends on the content that you are searching for.. make it relevant :) Search always look easy but can be incredibly difficult to get right.
尚未提及,但我认为非常重要 - 真正有效的搜索。这一项经常被忽视,使得其余的内容变得毫无意义。
Not mentioned yet, but very important I think - a search that actually works. This item is often neglected and makes the rest a bit moot.
也许这有点陈词滥调,但这张图片有一定的意义:
删除了无效的 ImageShack 链接
按照第二个示例中所示的方式进行操作,而不是按照第三个示例中的方式进行操作。
有一个众所周知的极限编程原理 - YAGNI。我认为它绝对适用于几乎任何问题。如果有必要,你总是可以添加新的东西,但是删除已经存在的东西要困难得多,因为即使它是错误的,也有人已经使用了它。
Maybe it's a bit trite but there is some sense in this picture:
removed dead ImageShack link
Do it as it shown at the second example, not as at the 3rd one.
There is a well known extreme programming principle - YAGNI. I think it's absolutely appliabe to almost any problem. You always can add something new if it's necessary, but it's much more difficult to remove something what is already exist because someone already uses it even if it's wrong.
保存搜索条件的能力如何,以便稍后轻松地重新运行搜索。或者,能够轻松、干净地打印结果列表。
How about the ability to save search criteria, in order to easily re-run a search later. Or, the ability to easily, cleanly, print the list of results.
如果允许搜索细化(给定搜索结果,将未来搜索限制为当前结果),您可能还需要添加面包屑系统,以便用户可以看到引导您到达当前结果集的细化顺序 - - 通过单击面包屑,返回到之前的细化阶段。
If search refining is allowed (given a search result, limited future searches to the current results), you may also want to add a breadcrumb system, so that the user can see the sequence of refinements that lead you to the current result-set -- and by clicking on a breadcrumb, return to a previous refinement stage.
分面搜索:
(来源:msdn.com)
这显示在右侧椭圆的区域中。有过滤器,引擎会显示应用过滤器后剩余的结果数。这非常有用,并且在某些搜索引擎中可以轻松完成,例如 Apache Solr。当然,仅当过滤器对您的任务有意义时才实施此操作。
Faceted search:
(source: msdn.com)
This is displayed in the area in the right ellipse. There are filters and the engine shows the number of results that will remain after aplying the filter. This is very useful and can be done without pain in some search engines, such as Apache Solr. Of course, implement this only if filters make sense in your task.
汇总摘要信息,例如总数、计数或百分比。
一个或多个菜单,例如网格的右键单击上下文、顶部的功能区或菜单。
Aggregate summary info, like total(s), count(s) or percentages.
One or more menus, like right click context for the grid, a ribbon or menu on top.
你的 UI 元素列表还不错。导出、打印(询问他们是否真的有必要打印这个?)、类别/标签和语言选择值得考虑。智能且有效的分页(不要忘记排序)。
请不要强制在新窗口中打开搜索(或者更糟糕的是,始终在同一个窗口中)。搜索结果的链接应该是可复制粘贴的(始终使用 GET),
但拥有一个实用的(即非常好的)算法确实很重要。我主要是谷歌公司网站,因为他们的搜索引擎是,咳,awwkward。寻找功能图表、技术规格、定价等。人们对新闻稿不感兴趣,反之亦然。
搜索引擎提供商提供与公司网站的集成。
Your list for the UI elements is kinda good. Export, print (asking them whether it is really necessary to print this?), category/tag and language selection is worth to consider. Smart and working pagination (don't forget ordering).
Please do not force a search to open in a new (or even worse, always in the same window). Links of search results should be copy-pastable (always use GET),
But it really matters to have a functional (i.e. a really good) algorithm. Mostly I google company websites, because their search engine is, cough, awwwwkward. Looking for a feature chart, technical spec, pricing etc. one is not interested in press releases and vica-versa.
Search engine providers offer integration into company websites.
尽可能在文本输入字段上使用自动完成功能。
如果使用带有相关信息的选择或组合框,请尝试使用链选择来组织信息。
如果结果取决于位置,请尝试提供相关结果。
另请记住,搜索表单应尽可能简单,甚至只有一个文本字段。要优化搜索,您可以使用替代形式作为“高级搜索界面”。
Use Auto-complete wherever possible on your text input fields.
If using selects or combo boxes with related information try and use chain selects to organise the information.
Where results depend on location try and serve relevant results.
Also remember to keep the search form as simple as possible even down to one text field. To refine the search you can have an alternate form as an "Advanced Search interface".
印刷、出口。
Printing, export.