Я пытаюсь найти способ удалить документы, которые слишком похожи друг на друга, из результатов Elasticsearch _search.
Я был проверен has_child, function_score и некоторыми другими эластичными возможностями, но, похоже, никто из них не можетне помогите мне с моим
GET /document/_search
{
"query": {
"term": {
"tags.name": {
"value": "sport"
}
}
}
}
, например, я использую запрос выше в моем приложении, которое возвращает все документы, которые содержат спорт в имени их тега.проблема в том, что в результате может быть слишком много документов, относящихся к конкретной области, такой как футбол, и я хочу, если у меня уже есть документ, относящийся к футболу, тогда упустите упускание следующих документов, которые похожи более чем на 90%.
Обновление
каждый документ содержит заголовок, резюме, содержание и список тегов.и, например, у меня уже есть такой запрос, чтобы найти документы, которые похожи на конкретный документ, но не слишком похожи.и теперь я хочу удалить слишком похожие документы из других результатов запроса Elastisesach.
GET /document/_search
{
"size": 30,
"query": {
"bool": {
"should": [
{
"more_like_this": {
"fields": [
"content"
],
"like": [
{
"_index": "document",
"_id": 2585099
}
],
"min_term_freq": 1,
"boost": 5
}
},
{
"more_like_this": {
"fields": [
"summary",
"description",
"title"
],
"like": [
{
"_index": "document",
"_id": 2585099
}
],
"min_term_freq": 1,
"boost": 2
}
}
],
"must_not": [
{
"more_like_this": {
"fields": [
"summary",
"description",
"title"
],
"like": [
{
"_index": "document",
"_id": 2585099
}
],
"min_term_freq": 1,
"boost": 10,
"minimum_should_match": "70%"
}
}
],
"minimum_should_match": 1
}
}
}