【问题标题】:Search Ranking of Results on Relational Data关系数据结果的搜索排名
【发布时间】:2015-10-31 07:12:19
【问题描述】:

我正在创建一个问答系统,我想使用 Azure 搜索从单个文本框中执行搜索。本来我想把答案和问题放在不同的索引中,这样每个索引只描述一个数据概念。但是,使用此模型,我不知道如何根据问题数据和答案数据进行排名搜索。

将所有项目存储在同一个索引中是唯一的方法吗?我知道 Lucene 和 Elastic Search 有为此目的加入查询和父子映射的概念。

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

    如果我正确理解了您的问题,那么您正在使用 Azure 搜索实现全文搜索体验,而您的问题与关系数据库架构设计无关。如果是这种情况,将您的问题和答案非规范化到一个索引中可能是正确的做法 - 您的用户将能够找到相关内容,无论是与问题相关还是与答案相关。对于需要在索引架构中提升与问题或答案相关的字段的情况,您仍然可以设置单独的评分配置文件。

    【讨论】:

    • 酷,你知道使用像 neo4j 这样的 graphdb 或其他搜索服务是否可以作为替代解决方案吗?比如搜索相关问题和答案,让相关性从节点流向它们的父节点等。
    • 我还假设出于并发原因我应该将我的数据复制到其他地方?由于我可能会为每个问题收集一组答案,因此我需要确保同时提交答案的两个用户不会破坏其中一个用户的答案(在集合合并期间)。
    • 我没有使用图形数据库的经验。当然还有其他搜索技术,例如 Elasticsearch 或 Solr。 Elasticsearch 可以在一定程度上对父/子关系进行建模。但是,我不确定您所说的“相关性流”是什么意思。如果您对问题和答案进行非规范化,则根本不需要对层次关系进行建模,因此无需担心并发更新(假设用户只能添加答案,而不能编辑/删除问题)。
    猜你喜欢
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2018-05-12
    • 1970-01-01
    • 2012-07-05
    • 2017-04-23
    相关资源
    最近更新 更多