【问题标题】:Java-Oracle Fuzzy Search [closed]Java-Oracle 模糊搜索 [关闭]
【发布时间】:2013-02-13 02:25:53
【问题描述】:

我们希望有一个更“模糊”的方法:

例如,如果我们输入

旅行天空

快速洞察

沃尔玛

数据库应该能够检索以下内容:

TravelSky 技术

快速洞察

沃尔玛

这就是谷歌的工作方式。

我已经用自己的逻辑尝试了很多,比如regex 等。但没有任何效果。

目前在我们的应用程序中,我们正在基于精确加工进行搜索....但现在我们希望它更加模糊,让我们说我的数据库中是否有一些完整的公司名称

例如

TravelSky 技术

然后,如果我搜索“旅行天空”,那么它应该返回 TravelSky 等等。目前我们正在进行精确加工。

如果需要更多示例,请告诉我。

我在 oracle 文档中提到的执行此类搜索的 oracle 10g 中找到了 CONTAINS。我还在尝试..

【问题讨论】:

  • 更模糊的方法是什么?你能提供你迄今为止所做的例子吗?
  • 你的问题是什么。你已经发表了许多声明。您在实施某些事情时遇到困难吗?问题是什么?如果您正在寻找建议,那么这在整个网络上都是题外话。
  • 模糊搜索是一个庞大而复杂的主题。您不会在一天内构建 google :) 但是,您可以使用一些标准工具来帮助您。你应该从Oracle Text documentation开始。

标签: java sql oracle oracle10g fuzzy-search


【解决方案1】:

查看专为您的问题设计的 Oracle Text 包。当我已经为 Oracle 数据库付出了高昂的代价时,我会犹豫是否要自己构建此功能。

http://docs.oracle.com/cd/B10501_01/text.920/a96517/cdefault.htm

【讨论】:

    【解决方案2】:

    您没有详细说明如何使用模糊搜索。对于 Oracle Text 的替代方案,您可以考虑使用 apache Solr(lucene)。它具有全文搜索、分面、聚类、地理空间搜索,并且根据我的经验,它具有很强的可扩展性。如果从前端使用,它也有方便的 REST api。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      • 2014-08-20
      • 2011-10-28
      • 2016-06-12
      • 2017-06-09
      相关资源
      最近更新 更多