好像你想要像倒置索引这样的东西
这是一个索引,对于每个术语(在您的情况下为hashtag),它包含一个包含此主题标签的文档ID列表.
例如,如果您有3个文档:带有哈希标记的d1,d2,d3:
d1: #tag1, #tag2
d2: #tag3
d3: tag3, #tag2
Run Code Online (Sandbox Code Playgroud)
倒排索引将是:
#tag1: d1
#tag2: d1,d3
#tag3: d2,d3
Run Code Online (Sandbox Code Playgroud)
使用倒排索引查找包含特定术语的所有文档(在您的情况下为hashtag),只需查看附加到此术语的列表即可.
此数据结构对于联合(或查询)和交集(和查询)也非常有效.
该DS非常适用于全文搜索的信息检索,并且通常用于半结构化搜索.
有关更多信息,您可以阅读有关信息检索的一般信息.Mannings信息检索简介在本书的第一章中代表了这种数据结构.
ElasticSearch 会很好地处理这个问题,并且您有多种方法来实现该行为。
您想要的是新闻文章(父级)与其标签(子级)之间的父子关系。
根据您是否需要在对新闻文章建立索引后更新主题标签,您可以将它们存储在新闻文章中或作为指向新闻文章文档作为其父级的单独文档。请在此处查看更多详细信息: http://www.elasticsearch.org/blog/managing-relations-inside-elasticsearch/
您提到了将标签存储为列表或逗号分隔字符串之间的选择。使用列表,因为这更惯用,并且 ElasticSearch 可以处理 json 对象(您实际上会分析字符串并将其转换为令牌列表)。
归档时间: |
|
查看次数: |
4315 次 |
最近记录: |