У меня есть данные с повторяющимися полями. Я не хочу, чтобы дубликаты отображались вместе поверх результатов поиска, но я не хочу их полностью исключать. Я просто хочу получить лучшее разнообразие, поэтому второе, третье ... n-е вхождение одного и того же значения поля будет понижено в сторону. Возможно ли это с помощью ElasticSearch?Пенификация - но не устранение дубликатов - в ElasticSearch
Например:
curl -XPOST 'http://localhost:9200/employeeid/info/1' -d '{
"name": "John",
"organisation": "Apple",
"importance": 1000
}'
curl -XPOST 'http://localhost:9200/employeeid/info/2' -d '{
"name":"John",
"organisation":"Apple",
"importance": 2000
}'
curl -XPOST 'http://localhost:9200/employeeid/info/3' -d '{
"name": "Sam",
"organisation": "Apple",
"importance": 0
}'
(на основе this)
Если мы предположим, поиск повышено значение, естественный результат для "Apple" поиск будет John
, John
, Sam
. То, что я ищу, - это способ сделать результат John
, Sam
, John
, то есть наказывать второй John
, потому что еще John
уже появился.
я считаю возможным решением является использование скриптов и скоринг: https://www.elastic.co/ guide/en/elasticsearch/reference/current/modules-scripting-painless.html, https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-advan ced-scripting.html. –