有没有办法在elasticsearch中查询一组术语的相似性(匹配分数)?
简单的例子:
数据:
doc1:{
"tags":["tag1", "tag2", "tag3", "tag4"]
}
doc2:{
"tags":["tag1", "tag2", "tag4"]
}
查询:
criteria:{
"tags":["tag1","tag2","tag3"]
}
后果
Result:{
doc1 - match 100%
doc2 - match 66.6%
}
说明:doc1包含搜索中存在的所有标记。doc2包含搜索中存在的3个标记中的2个
所以基本上查询将返回按匹配排序的文档列表,其中匹配=文档中的标签与查询中的标签有多相似。不需要模糊性。返回%只是一个例子,返回点或其他单位就可以了。标签的数量可以不同。
我正在html" target="_blank">设计系统,因此可以以任何格式存储数据,无论哪种格式适用于ElasticSearch。我看了他们的文档,但可能错过了这种类型的搜索。
非常感谢您的帮助。
改进可以为每个标签指定自定义匹配权重吗?一、 e.tag1-100分(或20%),tag2-200分(或40%)。
是的你需要相似度模块
不确定加权匹配,可能是boost属性?
问题内容: 我在Firestore数据库中有一个用户列表及其名称。我要实现的目标是使用户能够搜索并找到其他用户。我的问题是: 在上面的代码中,仅当我输入的名字和姓氏完全正确时,我才能找到用户。但是我想要获得的用户确实具有相似的名字或姓氏。而且,用户的姓氏和名字存储在一个字符串变量中。就像在Facebook中一样,如果您搜索一些名称,它也会显示相似的名称。有没有一个好的方法可以通过Firestore
我需要实现的是基于单个字段(产品名称,基本上由所有可能的筛选器值组成)来匹配文档。我知道这不是最可靠的解决方案,但我只有这一个领域可以使用。 我需要能够发送搜索查询,并将该查询中的单词以任何顺序匹配到name字段(名称应包含搜索查询中的所有单词)。实际上,在这一点上,简单的效果很好,但是那里缺少的是模糊。因为我们需要的另一件事是允许用户做一些拼写错误,并且仍然获得相关的结果。 我的问题是,有没有什
匹配查询用于实现以下情况的映射是什么 不区分大小写的搜索 数字搜索 特殊字符搜索 单字符搜索 > 我尝试使用通配符,但id不支持区分大小写 尝试使用小写规范化器匹配查询,它不支持特殊字符和单字符搜索 已尝试使用 ngram 匹配查询,但它不支持特殊字符和数字搜索。 任何人都可以帮助我的映射来支持上面提到的所有情况,无论是类型还是类型都很好
作为参考,我使用的是Elasticsearch 6.4.0 我有一个Elasticsearch查询,它返回一定的命中视频数,我正在尝试删除文本字段值过于相似的命中。我的查询是: 此查询使用自定义函数分数和筛选器来返回用户可能喜欢的书籍(他们尚未创作的书籍)。对于某些人来说,它返回的名字非常相似的书(即乔治·华盛顿的一生,乔治·华盛顿的美好时光,谁是乔治·华盛顿),我希望热门歌曲有一套更多样化的名字
给出一个二维板和字典中的单词列表,找出板中的所有单词。 每个单词必须由顺序相邻单元格的字母构成,其中“相邻”单元格是那些水平或垂直相邻的单元格。同一个字母单元格在一个单词中不能使用不止一次。 例如,给定单词和board= 回归[“吃”“誓”]