gpt4 book ai didi

java - 索引对 并返回在 Solr 上按值排序的结果

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:27 26 4
gpt4 key购买 nike

我有一组用户。每个用户都有一些字段。其中一个字段是一个映射,例如:“键,值”中的值表示顺序。

例如:

user1 有:

id    = user1
tags = <apples, 100>, <bananas, 80>, <oranges, 60>
name = "Ann Miller"
likes = "apples and skydiving, and sometimes solving puzzles"
quote = "Never spent a day without a smile!"

user2 有:

id    = user2
tags = <bananas, 100>, <pears, 80>, <apples, 60>
name = "Mike Anderson"
likes = "sleep and eating pizza"
quote = "Math, it's a puzzle to me. I love figuring out puzzles."

我想要一个返回用户的一般搜索,例如:

search  |  result order
--------+--------------------
smile | user1
puzzle | user2, user1
bananas | user2, user1
apples | user1, user2

目前我有一个通用的归档文件,我复制每个字段的值,然后在该字段上进行搜索。现在我只放了pairs的key,所以顺序不是我想要的。

我使用 SolrJ 来索引文档(从数据库中提取)并进行搜索。

我曾想过重复这些词,比如苹果重复 100 次,香蕉重复 80 次,等等,但这让我感到极其缓慢(而且这不是一个好方法)。

你们有什么想法吗?

最佳答案

根据 Andrea 的建议,解决方案可能如下所示:

  • 将值索引为动态字段(例如 *_value,如 banana_value)。
  • 使用eDisMax query parser boost or bf您的搜索结果使用类似 bf=field($value_field) 的方式,其中 value_field 是您使用 SolrJ 指定的附加参数。通过此参数,您将提供查询词 + 动态字段后缀(例如 banana_value),并且感谢函数查询 field您将获得该特定对的值并相应地提高结果。

关于java - 索引对 <key, value> 并返回在 Solr 上按值排序的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14365061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com