Search Liferay搜索Portlet定制

Search Liferay搜索Portlet定制,search,liferay,liferay-6.2,Search,Liferay,Liferay 6.2,我有一个要求,即我需要覆盖Liferay默认搜索功能,这样,每当用户搜索时,它都应该以以下方式工作: 已经有一些第三方restful服务可以返回任何搜索关键字的结果,比如说搜索关键字的工作是“Test”,如果我们通过第三方服务的“Test”,它将以json的形式返回结果,我们需要在搜索结果页面中显示 我计划通过以下方式实现这一目标,但我想从你们那里知道我的做法是否正确 步骤1:我将创建一个钩子项目,在该项目中,我将覆盖主搜索结果表单.jsp,以格式化结果页面 步骤2:我将创建一个索引器,在其中实

我有一个要求,即我需要覆盖Liferay默认搜索功能,这样,每当用户搜索时,它都应该以以下方式工作:

已经有一些第三方restful服务可以返回任何搜索关键字的结果,比如说搜索关键字的工作是“Test”,如果我们通过第三方服务的“Test”,它将以json的形式返回结果,我们需要在搜索结果页面中显示

我计划通过以下方式实现这一目标,但我想从你们那里知道我的做法是否正确

步骤1:我将创建一个钩子项目,在该项目中,我将覆盖主搜索结果表单.jsp,以格式化结果页面

步骤2:我将创建一个索引器,在其中实现并使用搜索关键字调用restful服务,我将返回结果json对象

步骤3:我将在main\u search\u result\u form.jsp中获取json,并根据json输出格式化页面


想知道我的方法是否正确,我的建议是创建一个新的portlet,不要挂接现有的搜索portlet,原因如下:

-Liferay搜索portlet的强大功能是使用ApacheLucene搜索引擎来搜索和索引门户内容、实体。。。而且,由于您不希望从门户网站获得搜索结果,因此将其挂接将毫无用处

-搜索portlet jsp使用特定的呈现逻辑进行编码,这可能与您的逻辑(特别是json结果)不同,因此我认为您必须对这些jsp进行重大修改,这将是一种开销

-您的需求相对简单(使用搜索词参数调用web服务以获取结果并呈现结果)

因此,我认为一个简单的Liferay MVC portlet对您来说是一个更好的选择

将主题默认搜索替换为自定义搜索portlet 不,你不需要钩子。 您可以通过编辑门户文件替换主题搜索字段,如下所示:

替换

$theme.journalContentSearch()


我的建议是创建一个新的portlet,不要挂接现有的搜索portlet,原因如下:

-Liferay搜索portlet的强大功能是使用ApacheLucene搜索引擎来搜索和索引门户内容、实体。。。而且,由于您不希望从门户网站获得搜索结果,因此将其挂接将毫无用处

-搜索portlet jsp使用特定的呈现逻辑进行编码,这可能与您的逻辑(特别是json结果)不同,因此我认为您必须对这些jsp进行重大修改,这将是一种开销

-您的需求相对简单(使用搜索词参数调用web服务以获取结果并呈现结果)

因此,我认为一个简单的Liferay MVC portlet对您来说是一个更好的选择

将主题默认搜索替换为自定义搜索portlet 不,你不需要钩子。 您可以通过编辑门户文件替换主题搜索字段,如下所示:

替换

$theme.journalContentSearch()

Lifray使用搜索(实际上是索引)进行很多其他的事情,而不仅仅是搜索portlet。如果你只更换一点点,某些东西可能会停止工作

好消息是Liferay具有可插入搜索功能。在6.2中,默认情况下它使用嵌入式Lucene,但您可以用Solr替换它。例如,您可以看看插件,看看它是如何实现的。特别要了解Bean是如何与中的搜索配置连接的

也就是说,我想你只有很少的选择来实现你想要的:

  • 基于您的自定义服务完全实现一个新的搜索插件,该插件可以索引和搜索Liferay希望索引的每个实体
  • 实现一个新的搜索插件,以某种方式区分“您的”搜索和“内部”搜索/索引,并将请求发送到不同的地方
  • 实现您自己的portlet,该portlet独立于Liferay的搜索,实现您想要的功能
    • Lifray使用搜索(实际上是索引)进行许多其他操作,而不仅仅是搜索portlet。如果你只更换一点点,某些东西可能会停止工作

      好消息是Liferay具有可插入搜索功能。在6.2中,默认情况下它使用嵌入式Lucene,但您可以用Solr替换它。例如,您可以看看插件,看看它是如何实现的。特别要了解Bean是如何与中的搜索配置连接的

      也就是说,我想你只有很少的选择来实现你想要的:

      • 基于您的自定义服务完全实现一个新的搜索插件,该插件可以索引和搜索Liferay希望索引的每个实体
      • 实现一个新的搜索插件,以某种方式区分“您的”搜索和“内部”搜索/索引,并将请求发送到不同的地方
      • 实现您自己的portlet,该portlet独立于Liferay的搜索,实现您想要的功能

      请指定您正在使用的Liferay版本,以及您是否希望使用自定义版本完全替换Liferay的搜索功能,或者您希望两者兼有(网站的一部分将是一个,另一部分将是另一个)?@MilenDyankov我使用的是
      Liferay 6.2GA6版本
      @MilenDyankov我想用我的自定义版本完全替换Liferay的搜索功能请指定您使用的是哪个Liferay版本,如果您想用自定义版本完全替换Liferay的搜索功能,或者您想同时拥有这两个版本(现场的一部分将由一个部分和另一个部分组成)?@MilenDyankov我使用的是
      Liferay6.2GA6版本
      @MilenDyankov我想用我的自定义OneHanks完全取代Liferay的搜索功能来回复…………假设我创建了一个包含serach框及其实现的自定义portlet,但是我们如何用主题搜索框替换,我们需要为等一下