Je travaille sur un outil pour identifier des documents similaires et les marquer comme dupliqués. Pour ce faire, j'utilise ElasticSearch pour vérifier le contenu des documents afin qu'ElasticSearch prenne en charge la gestion des synomymes et des fautes de frappe possibles, mais je n'ai pas besoin de proposer une requête qui atteindrait mes objectifs.Score fixe Elasticsearch basé sur la similarité du contenu
Jusqu'à présent, je suis venu avec cette requête:
{
"query":{
"filtered":{
"query":{
"more_like_this":{
"fields":[
"description"
],
"like_text":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
"min_term_freq":1,
"max_query_terms":999,
"min_doc_freq":1
}
}
}
},
"from":0,
"size":999,
"search_type": "dfs_query_then_fetch",
"sort":[
{
"_score":{
"order":"desc"
}
}
]
}
Mais il semble que le score qu'il me donne est tout à fait au hasard, je voudrais avoir un score comme 100 pour les contenus complètement égaux tandis que 0 pour quelque chose c'est complètement différent.
Je me suis rendu compte que je changeais mon approche, au lieu d'utiliser l'elasticsearch pour calculer le similary, je l'utilisais pour trouver des textes similaires et calculais la similarité en utilisant ruby lui-même. Merci pour votre temps. – darks