我使用Elasticsearch推荐作者(我的Elasticsearch文档表示书籍,有标题、摘要和作者ids列表)。
用户用一些文本(例如Georgia或Paris)查询我的索引,我需要在作者级别(意思是:重新推荐一位写巴黎的作者)的个人图书的评分。
我从一个简单的聚合开始,然而,实验(交叉验证)最好在每个用户最多4本书之后停止聚合每个用户的分数。这样,我们就没有一个拥有200本书的作者能够“主宰”结果。让我用伪码解释:
# the aggregated score of each author
Map<Author, Double> author_scores = new M
我想简单地匹配字段的值,我不关心分数(它总是返回一个匹配)。我不想让elasticsearch给我打分,这可能会导致我的表现变差……或者我错了,我不应该在意?
如下所示的简单查询:
GET /testing/test/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query": "My name h
在elasticsearch中,有没有一种方法可以提高文档中查询词彼此接近的文档的得分?这不仅仅是关于在一起的单词,因为这可以通过使用带状疱疹来解决,还关于相邻的单词,在这些单词之间可能有另一个不重要的单词。
示例:
文档1:
close words in documents detection
文档2:
close words in detection documents
查询:
close documents
因此,我希望第一个文档的分数更高,第二个文档的分数更低。
如果这些单词紧邻在一起,我会使用瓦片和两个或三个单词的标记。然而,这种方法不考虑彼此相近的单词。