【发布时间】:2011-03-11 15:05:54
【问题描述】:
我必须为我的 IR 项目创建一个搜索引擎前端。我非常了解 Java,但我还没有将它用于 Web 应用程序。所以,我需要选择学习什么来实现我的目标。
我发现 java 有很多技术,例如:jsf、jsp、spring、gwt ... 那么这些技术中哪些适合我的需求,哪些可以快速学习?
编辑: 我的网络应用应该有两个页面(第一个提交搜索查询,第二个显示搜索结果)。
【问题讨论】:
我必须为我的 IR 项目创建一个搜索引擎前端。我非常了解 Java,但我还没有将它用于 Web 应用程序。所以,我需要选择学习什么来实现我的目标。
我发现 java 有很多技术,例如:jsf、jsp、spring、gwt ... 那么这些技术中哪些适合我的需求,哪些可以快速学习?
编辑: 我的网络应用应该有两个页面(第一个提交搜索查询,第二个显示搜索结果)。
【问题讨论】:
由于您了解 Java,但不了解过多的 Web 应用程序框架,因此我会坚持使用 GWT。虽然它确实有一个复杂的学习曲线,但实际上您可以在 Eclipse 中一键构建一个工作的默认应用程序。这足以让您入门。
接下来您需要一个搜索引擎。 Lucene 是首屈一指的 Java 搜索引擎应用程序,并且文档齐全。然而,它很大。您可以使用Classifier4J 中的 VectorClassifier 更快地到达那里。这很简单,您可以在有限的时间内真正理解整个事情(如果我为这个项目评分,这将导致更高的成绩)。
从 GWT Hello World“问候”启动应用程序开始,而不是发送您的姓名,而是发送您的搜索词。然后在 servlet 中,您将使用 Classifier4J 将搜索词与您的文档进行匹配,从而为您提供分数。您将在 greetService RPC 调用中返回分数,并将它们与您页面中的文档标题一起显示。
【讨论】:
作为 Java 中的标准 Web 框架,我建议先查看 JSF。它相对容易学习,并且有很多第三方可用的组件(例如 PrimeFaces)。请确保您开始使用最新版本的 JSF(例如 2.0 或 2.1),因为旧版本(1.1、1.2)有些限制。
Wicket 和 GWT 也很不错,尽管 GTW 有一点学习曲线。再说一次,大多数技术都有这样的曲线,这真的不应该阻止专业的开发人员。然而,这两个是 JSF 的替代品,除了 JSF 之外,您不要使用它们。
我真的不建议使用 JSP 和 Servlet。这些是 2000 年时代技术的代表,在当今的开发环境中几乎没有地位(Servlet 肯定仍然有它们的用途,但用于特殊情况,而不是作为 UI 元素的主要组件)。
【讨论】:
如果您不限于面向页面的方法,我建议您看看Vaadin。它基于 GWT,但对于 Java 开发人员来说更容易学习。我认为您需要的功能可以在一两个 Java 类中实现。
【讨论】:
我的用例和你一样。下面我使用 Lucene 作为我的搜索引擎。使用 IR 库的好处在于简化了搜索输入屏幕。我的网页上只有 1 个文本字段(例如 www.google.com)。
我建议您为此坚持使用 Java EE 的基本 Web 技术,即 Servlet 和 JSP。您在 JSP 中描述 UI 并将其 POST 到 Servlet,然后 Servlet 将为应用程序逻辑使用服务层。
【讨论】:
如果你没有 Java Web 应用开发经验,我建议你选择 Servlet/JSP 模型。它简单直观。此外,JSP 可以有 Java 代码。
GWT 有点复杂,Spring 也是。
【讨论】:
【讨论】:
Servlet(JSP)||JSF & Elasticsearch||Solr
是的 jsf 是较新的技术,但你不需要为这个项目做大的东西..
这是一个很好的示例项目https://github.com/scrutmydocs/scrutmydocs
【讨论】: