我正在创建一个类似quora/stackoverflow的web应用程序,允许用户在问题库上执行CRUD操作(问题库非常小,每个问题最多有5个答案)和搜索。我如何建立一个自由流动搜索或自动建议功能的问题库?
技术人员:
问题库模式:
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剪下来的)。
问题:
是否有其他快速使用推荐的解决方案来构建这种用例的自由流搜索功能?
这里的引线/指针很受欢迎。
发布于 2018-05-11 10:54:35
是否应该使用自创建的数据结构(如应用服务器本身中的后缀树)来构建索引?
求你别这样!这将花费很长的时间,而且很可能非常容易出错。管理应用程序服务器本身中的索引可能是一个可行的解决方案,但使用库肯定会对您有很大帮助。
虽然Elasticsearch是一种可能,但是可以通过一个简单的Lucene索引轻松地管理这部分数据。此决定还取决于您希望确保系统的冗余。如果您不满意每次一台服务器停机时无法访问您的一个服务,则应该查看Lucene的索引复制特性或使用冗余的Elasticsearch安装。
发布于 2018-05-14 14:30:05
弹性搜索是否适合为如此小的数据集建立索引或建立搜索功能?
是的。我认为您喜欢索引的数据的大小不是这里的主要问题。库或搜索引擎,如elasticsearch,solr或lucene有一些基本功能,如果您想要实现一个用户友好和最先进的搜索,您可以真正使用这些功能。只是一些用例,如果您不使用这些用例,您就会感到非常困难:
是否应该使用自创建的数据结构(如应用服务器本身中的后缀树)来构建索引?
根据米克帕米的回答:他是对的。别这么做!为此使用搜索引擎/库。这是为你设计的,他们做得很好。
发布于 2018-05-16 14:05:56
ElasticSearch和Solr是很棒的全文搜索服务器,Lucene是一个很好的全文搜索库,可以用于您的场景。但是,您知道Server具有全文搜索功能吗?通过使用包含,您可以搜索:
要能够使用CONTAINS
,您需要设置全文搜索
Server全文搜索并不像ElasticSearch或Lucene那样花哨或快捷,但是:
https://stackoverflow.com/questions/50277683
复制相似问题