Java 元搜索引擎体系结构

Java 元搜索引擎体系结构,java,design-patterns,search-engine,meta-search,Java,Design Patterns,Search Engine,Meta Search,我认为这个问题不够清楚;这里有一个最新的直截了当的问题: 构建元搜索引擎时使用的常见架构是什么?是否有任何库可用于构建该类型的搜索引擎 我正在考虑构建一个“企业”类型的搜索引擎,其中索引数据可能来自专有(如Autonomy或Google Box)或公共搜索引擎(如Google Web或Yahoo Web)。此页面似乎列出了一些: 我认为这些API都是相似的,它们接受一个查询字符串和一些选项,并返回一组结果。然而,选项的具体类型和结果可能会有所不同,因此我认为您需要某种适配器方法(例如)来统一对

我认为这个问题不够清楚;这里有一个最新的直截了当的问题:

构建元搜索引擎时使用的常见架构是什么?是否有任何库可用于构建该类型的搜索引擎


我正在考虑构建一个“企业”类型的搜索引擎,其中索引数据可能来自专有(如Autonomy或Google Box)或公共搜索引擎(如Google Web或Yahoo Web)。

此页面似乎列出了一些:


我认为这些API都是相似的,它们接受一个查询字符串和一些选项,并返回一组结果。然而,选项的具体类型和结果可能会有所不同,因此我认为您需要某种适配器方法(例如)来统一对不同后端的访问。

这不完全是您想要的,但我仍然建议检查一下,这可能会给您一些想法。也许也是

更新:为了澄清,Compass不是ORM(也不是Hibernate搜索),它是一个面向搜索的API,因为它试图抽象底层搜索引擎(Lucene),所以我建议看看它使用的一些结构:分析器、分析器过滤器、查询解析器等

在Lucene之上构建,罗盘Lucene的常见使用模式,如google风格的搜索(…)

另见:
看一看

Apache Lucene是一款高性能的, 全功能文本搜索引擎 完全用Java编写的库。信息技术 这项技术是否适用于几乎所有人 任何需要 全文搜索,尤指 跨平台

如果你看一下,你会注意到它的架构足够通用,并且可以适应元搜索引擎

更新:

建筑草图大致如下:

   +---------------------------+
   |                           |
   |    Meta-Search Engine     |         +---------------+
   |                           |         |               |
   |   +-------------------+   |---------| Configuration |
   |   | Query Processor   |   |         |               |
   |   |                   |   |         +---------------+
   |   +-------------------+   |
   +-------------+-------------+
                 |
      +----------+---------------+
   +--+----------+-------------+ |
   |             |             | |
   |     +-------+-------+     | |
   |     |    Wrapper    |     | |
   |     |               |     | |
   |     +-------+-------+     | |
   |             |             | |
   |             |             | |
   |     +-------+--------+    | |
   |     |                |    | |
   |     | Search Engine  |    | |
   |     |                |    +-+
   |     +----------------+    |
   +---------------------------+
描述的部分包括:

  • 元搜索引擎-该引擎,协调整个事情
  • 查询处理器-引擎的一部分,解析功能,发送请求并聚合特定搜索引擎的结果(通过包装器)
  • 包装器-将元搜索引擎API连接到特定搜索引擎。每个包装器与特定的搜索引擎一起工作。向元搜索引擎公开外部搜索引擎功能,接受并响应搜索请求
  • 搜索引擎-外部搜索引擎的查询,他们暴露于元搜索引擎通过包装
  • 配置-配置元搜索引擎的数据,例如,要使用哪些包装、在何处查找更多包装等,也可以配置包装

如果你能阅读Objective-C并想看到一个类似“元搜索引擎”的工作示例,你可能想看看谷歌框架的源代码。它使用支持非常流行的OSX实用程序的引擎(这反过来又很像


该框架提供了为搜索过程添加插件后端的功能,并处理来自多个源的结果的合并排序等。我可以想象,任何种类的联合搜索引擎的设计都将遵循类似的设计。

Lucene/Solr/Nutch能处理元搜索(或联合搜索)吗不是直接的。但是Lucene的索引功能很棒,特别是增量索引构建和合并多个索引。功能列表是..取决于你所说的“元搜索”是什么意思我指的是搜索引擎中的搜索引擎。例如,联邦搜索也是常见的。您对体系结构的哪些方面感兴趣?我在回答中介绍了与不同搜索引擎对话时可能需要使用的基本适配器思想,但您是否还想了解其他方面?管理飞行中的requests(我假设您将同时进行)也许?或者完全是别的什么。呃,链接到PDF时要小心!+1:我目前正在做这件事,结果就是这样。我有一个元查询,包装器将查询转换为实际搜索引擎的格式。然后包装器将答案转换为元结果,现在开始……这是怎么回事蚀刻产生?从任何网站?或使用任何工具?