|
Агрегации ElasticSearch
|
|||
---|---|---|---|
#18+
Добрый день! Возникла необходимость обработать дублирующиеся по совпадению ряда полей записи, хранящиеся в эластике. Возникло 2 вопроса по агрегациям... 1) Несоответствие количества записей Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Получаю Код: sql 1. 2. 3. 4. 5. 6. 7.
Но если я сделаю, например запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Получаю Код: sql 1. 2. 3. 4.
Откуда берется вот такое расхождение? В моем случае это не особо критично, но могу я быть уверен, что curl с агрегацией не пропустит дубликаты? 2) Не могу сделать группировку по нескольким полям Почему не работает вот это вот я понимаю... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Но если я хочу сделать вот так вот: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
я получаю ошибку "Fielddata is disabled on text fields by default. Set fielddata=true on [LastName] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead." Решение из доков мне не помогает: https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html#_enabling_fielddata_on_literal_text_literal_fields После выполнения Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
У меня поменялся мапинг: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
Но нужный мне curl все равно не работает. Прошу прощения за большое полотно писанины, очень нуждаюсь в подсказке / хорошем мануале. Очень не хочется выгружать в приложение вообще все данные из эластика (документов очень много) и искать дубликаты. Хотелось бы вернуть только задублированные и уже потом их обработать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 15:11 |
|
Агрегации ElasticSearch
|
|||
---|---|---|---|
#18+
alex1610Откуда берется вот такое расхождение? Скорее всего поэтому https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html Terms are collected and ordered on a shard level and merged with the terms collected from other shards in a second step. However, the shard does not have the information about the global document count available. The decision if a term is added to a candidate list depends only on the order computed on the shard using local shard frequencies. The min_doc_count criterion is only applied after merging local terms statistics of all shards. In a way the decision to add the term as a candidate is made without being very certain about if the term will actually reach the required min_doc_count. This might cause many (globally) high frequent terms to be missing in the final result if low frequent terms populated the candidate lists. To avoid this, the shard_size parameter can be increased to allow more candidate terms on the shards. However, this increases memory consumption and network traffic. alex1610Но нужный мне curl все равно не работает. После изменения маппинга документы надо реиндексировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 06:53 |
|
|
Start [/forum/topic.php?fid=48&fpage=2&tid=1856555]: |
0ms |
get settings: |
26ms |
get forum list: |
25ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
70ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
174ms |
get tp. blocked users: |
3ms |
others: | 318ms |
total: | 646ms |
0 / 0 |