首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在server数据库表上构建自由流搜索?

如何在server数据库表上构建自由流搜索?
EN

Stack Overflow用户
提问于 2018-05-10 16:42:35
回答 4查看 377关注 0票数 5

我正在创建一个类似quora/stackoverflow的web应用程序,允许用户在问题库上执行CRUD操作(问题库非常小,每个问题最多有5个答案)和搜索。我如何建立一个自由流动搜索或自动建议功能的问题库?

技术人员:

  1. CRUD操作的Restful服务是从托管在tomcat上的基于Java (spring )的服务器公开的。
  2. 前端应用程序是使用React构建的,并从Node服务器上提供服务。
  3. 使用的数据库是Server。

问题库模式:

代码语言:javascript
运行
复制
questionId: String

tags: [String]

title: String

description: String

answernotes: [String]

applicableJobRole: [Intern, Full Time]

state: [Approved, UnderReview, Obsolete]

difficultyLevel: [Easy, Medium, Hard]

noOfTimesUsed: int

createdBy: user

要求:

对于我的web应用程序,我想建立一个自由流动的搜索或自动建议功能的问题库(它搜索现有的问题在领域,如描述,标题,答案笔记等)。这是为了防止在题库中创建重复的问题,并帮助用户搜索类似的问题。

为了前夫。与下面的图片类似的东西(从Quora剪下来的)。

问题:

  1. 弹性搜索是否适合为如此小的数据集建立索引或建立搜索功能?或,
  2. 是否应该使用自创建的数据结构(如应用服务器本身中的后缀树)来构建索引?

是否有其他快速使用推荐的解决方案来构建这种用例的自由流搜索功能?

这里的引线/指针很受欢迎。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-11 10:54:35

是否应该使用自创建的数据结构(如应用服务器本身中的后缀树)来构建索引?

求你别这样!这将花费很长的时间,而且很可能非常容易出错。管理应用程序服务器本身中的索引可能是一个可行的解决方案,但使用库肯定会对您有很大帮助。

虽然Elasticsearch是一种可能,但是可以通过一个简单的Lucene索引轻松地管理这部分数据。此决定还取决于您希望确保系统的冗余。如果您不满意每次一台服务器停机时无法访问您的一个服务,则应该查看Lucene的索引复制特性或使用冗余的Elasticsearch安装。

票数 5
EN

Stack Overflow用户

发布于 2018-05-14 14:30:05

弹性搜索是否适合为如此小的数据集建立索引或建立搜索功能?

是的。我认为您喜欢索引的数据的大小不是这里的主要问题。库或搜索引擎,如elasticsearch,solr或lucene有一些基本功能,如果您想要实现一个用户友好和最先进的搜索,您可以真正使用这些功能。只是一些用例,如果您不使用这些用例,您就会感到非常困难:

  • 语言分析(词干)
  • 更好地支持多语言用例
  • 全文搜索
  • 基于Lhevenstein距离的自动提示

是否应该使用自创建的数据结构(如应用服务器本身中的后缀树)来构建索引?

根据米克帕米的回答:他是对的。别这么做!为此使用搜索引擎/库。这是为你设计的,他们做得很好。

票数 1
EN

Stack Overflow用户

发布于 2018-05-16 14:05:56

ElasticSearch和Solr是很棒的全文搜索服务器,Lucene是一个很好的全文搜索库,可以用于您的场景。但是,您知道Server具有全文搜索功能吗?通过使用包含,您可以搜索:

  • 单词或短语。
  • 一个词或短语的前缀。
  • 一个接近另一个词的词。
  • 一个词是从另一个词产生的(例如,单词驱动器是驱动器、驱动器、驱动和驱动的拐弯抹角)。
  • 使用同义词库的另一个词的同义词(例如,“金属”一词可以有“铝”和“钢”等同义词)。

要能够使用CONTAINS,您需要设置全文搜索

Server全文搜索并不像ElasticSearch或Lucene那样花哨或快捷,但是:

  • 它是Server的一部分,所以您不需要另一个移动部分。
  • 索引会自动更新。对于ElasticSearch或Lunece,当基表更改时,您需要使用某种机制来更新索引。
  • 我觉得这对你的情节来说已经足够了。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50277683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档