我有一个需要能够搜索的 MVC 应用程序。该应用程序是模块化的,因此模块需要易于注册数据以使用搜索模块进行索引。
目前,只有一个快速的临时解决方案可以很好地提高灵活性,但速度始终是个问题。模块注册它们希望可搜索的模型(以及关系和列)。搜索时,搜索功能使用这些关系查询数据并应用 Levenshtein,删除停用词,进行字符替换等。显然,随着数据量的增加,这将减慢速度,因此无法有效地保留它select * from x,y,z
,然后通过数据。
上述的好处是与找到数据的模型有直接关系。例如,如果Model_Product
找到一些东西,我知道在我的代码中我可以使用Model_Product::url()
将结果关联到相关位置Model_Product::find(other data)
,或者如果在标题中找到关键字,则显示图像或描述。
上面的另一个好处是它已经是特定于数据库的,因此可以直接放到虚拟主机上并且它可以工作。
我已经阅读了各种选项,它们看起来都非常相似,因此人们不太可能在不引发讨论或辩论的情况下提出“正确”的选项,但要记录在案;从以下选项来看,Solr 似乎是我倾向于的选项。我不是一成不变的,所以如果有人有任何他们想分享的建议或我可以查看的其他选项,那就太好了。
浏览各种教程和指南,它们似乎都相对容易设置和配置。在上述情况下,我可以让模块注册配置文件/搜索索引模型的路径,并让搜索器通过搜索程序 x 运行它们。这将建立我的索引,并提供查询数据的方法。美好的。
我不明白这些索引中的任何一个与我的其他代码有什么关系。如果我对数据进行索引、搜索,然后使用 Solr 找到结果,我怎么知道如何获取与它找到的位相关的所有其他信息?
还有人能够确认我是否需要每个虚拟主机都有上述任何一个实例?这是我似乎找不到太多信息的东西。我会假设我可以连接到单个实例并告诉它哪些数据是相关的?就像使用凭据 x 连接到数据库 y 连接到单个 DBMS 服务器一样。
当然,我没有像通常那样广泛阅读这方面的内容,因为我目前在方向方面有点卡住,我宁愿不阅读所有内容,而是向那些知道的人寻求一些建议在我采取特定路线之前。