鉴于一个人拥有多个标签和一本带有多个标签的书,我想为那个人找到最好的书。
我对弹性搜索的问题在于,使用评分机制,它看起来像一本书,其中一个标签优先于具有许多标签的书。
book1.tags = ('good','short')
book2.tags = ('good', 'sci-fi', 'long')
我搜索'good'作为我的搜索标签,我会得到更高的book1分数。 同样,搜索“好”,“短”,“科幻”也会给出第1册(我可能期望它们相等)。如果我有另一本只带有“好”标签的书,情况会更糟。
我是否可以通过某种方式添加这些字段,以便将其评分为计数?我整天都在读TF / DF等等。我基本上只想要TF。
在Elasticsearch中有一个很好的方法吗?这似乎是一个基本情况 - 即重叠两个标记字段。
这是我正在运行的搜索:
{'query': {'match': {'tags': 'good'}}}