-
Notifications
You must be signed in to change notification settings - Fork 0
/
about.html
1372 lines (967 loc) · 96.3 KB
/
about.html
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link type="application/atom+xml" rel="alternate" href="https://kolchfa-aws.github.io/feed.xml" title="OpenSearch" />
<!-- LOGIC to pull the correct category image onto blog posts that do not have an image -->
<!-- If there is a category, pull the correct category and fetch the generic image for that category -->
<!-- If there is no category, give the page the generic category "default-category" -->
<meta name="ROBOTS" content="ALL" />
<meta name="MSSmartTagsPreventParsing" content="true" /> <!-- MSSmartTags... turns off internet explorer smart tags that are outdated and no longer supported. -->
<meta name="msapplication-TileColor" content="#113228">
<meta name="msapplication-TileImage" content="/img/icon-tile.png">
<meta name="meta_keywords" content="open-source, search, opensearch" />
<meta name="description" content="OpenSearch is a community-driven, Apache 2.0-licensed open source search and analytics suite that makes it easy to ingest, search, visualize, and analyze data." />
<meta name="meta_description" content="OpenSearch is a community-driven, Apache 2.0-licensed open source search and analytics suite that makes it easy to ingest, search, visualize, and analyze data." />
<!-- TWITTER -->
<meta name="twitter:title" content="About OpenSearch" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:description" content="OpenSearch is a community-driven, Apache 2.0-licensed open source search and analytics suite that makes it easy to ingest, search, visualize, and analyze data." />
<meta name="twitter:image" content="https://kolchfa-aws.github.io/assets/media/blog-category-images/OpenSearch_WebGraphic_Generic-02.png" />
<meta name="twitter:site" content="@OpenSearchProj" />
<!-- OG: OPENGRAPH SHARING -->
<meta property="og:image" content="https://kolchfa-aws.github.io/assets/media/blog-category-images/OpenSearch_WebGraphic_Generic-02.png" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:height" content="1200" />
<meta property="og:image:width" content="675" />
<meta property="og:description" content="OpenSearch is a community-driven, Apache 2.0-licensed open source search and analytics suite that makes it easy to ingest, search, visualize, and analyze data." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://kolchfa-aws.github.io/about.html" />
<meta property="og:title" content="About OpenSearch" />
<meta property="og:site_name" content="OpenSearch" />
<title> About OpenSearch · OpenSearch</title>
<!-- Favicons -->
<link rel="apple-touch-icon" href="/assets/img/apple-touch-icon.png">
<link rel="icon" sizes="192x192" href="/assets/img/apple-touch-icon.png">
<link rel="shortcut icon" href="/assets/img/favicon.ico">
<link rel="canonical" href="https://kolchfa-aws.github.io/about.html">
<meta name="msapplication-TileColor" content="#113228">
<meta name="msapplication-TileImage" content="/img/icon-tile.png">
<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
<script src="/assets/js/bootstrap.js"></script>
<link rel="stylesheet" href="/assets/css/output.css" >
<script src="/assets/js/lib/modernizr.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-BQV14XK08F"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-BQV14XK08F');
</script>
</head>
<body id="" class=" ">
<div role="banner" id="top">
<div class="navigation-container">
<a class="navigation-container--logo" href="/">
OpenSearch
<svg width="200" height="39" viewBox="0 0 200 39" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_723_1352)">
<path d="M33.1921 14.2473C32.5203 14.2473 31.9757 14.7919 31.9757 15.4638C31.9757 25.4739 23.861 33.5886 13.8509 33.5886C13.179 33.5886 12.6344 34.1332 12.6344 34.8051C12.6344 35.4769 13.179 36.0215 13.8509 36.0215C25.2046 36.0215 34.4086 26.8175 34.4086 15.4638C34.4086 14.7919 33.864 14.2473 33.1921 14.2473Z" fill="#005EB8"/>
<path d="M25.8502 22.0429C27.02 20.1346 28.1514 17.5901 27.9288 14.0279C27.4677 6.64898 20.7844 1.05116 14.4735 1.65781C12.0029 1.8953 9.46604 3.90914 9.69142 7.51629C9.78938 9.08382 10.5566 10.009 11.8035 10.7203C12.9902 11.3973 14.515 11.8262 16.2435 12.3123C18.3313 12.8996 20.7532 13.5592 22.6146 14.9309C24.8455 16.5749 26.3705 18.4807 25.8502 22.0429Z" fill="#003B5C"/>
<path d="M2.10678 9.13989C0.936968 11.0482 -0.194358 13.5927 0.0282221 17.1549C0.489286 24.5338 7.17263 30.1316 13.4835 29.525C15.9541 29.2875 18.491 27.2737 18.2656 23.6665C18.1676 22.099 17.4004 21.1738 16.1535 20.4625C14.9668 19.7855 13.442 19.3566 11.7135 18.8705C9.6257 18.2832 7.20382 17.6236 5.34245 16.2519C3.11154 14.6079 1.58652 12.7021 2.10678 9.13989Z" fill="#005EB8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M194.892 16.6666V29.0322H199.731V15.5914C199.731 13.1143 199.247 11.243 198.279 9.97369C197.311 8.69203 195.851 8.0645 193.952 8.0645C191.891 8.0645 190.24 9.26923 189.247 11.2903H188.979C189.052 10.2468 189.118 9.64901 189.167 9.21251C189.217 8.76235 189.247 8.48369 189.247 8.0645V0.268799H184.409V29.0322H189.516V19.086C189.516 16.8554 189.591 15.2051 190.05 14.022C190.509 12.8266 191.31 12.2289 192.452 12.2289C193.978 12.2289 194.892 13.6473 194.892 16.6666ZM124.652 27.5424C125.959 26.1907 126.613 24.2439 126.613 21.7018C126.613 20.1144 126.255 18.7008 125.538 17.4607C124.834 16.2207 123.583 15.0055 121.785 13.815C120.453 12.947 119.516 12.1719 118.975 11.4899C118.447 10.8079 118.183 10.008 118.183 9.09041C118.183 8.16036 118.403 7.42875 118.844 6.89552C119.296 6.34987 119.937 6.07708 120.767 6.07708C121.522 6.07708 122.225 6.21348 122.879 6.48627C123.545 6.75912 124.18 7.06912 124.784 7.41633L126.481 3.36136C124.532 2.19571 122.502 1.61288 120.39 1.61288C118.177 1.61288 116.411 2.29491 115.091 3.65897C113.783 5.02303 113.13 6.87074 113.13 9.20203C113.13 10.4172 113.293 11.4837 113.62 12.4013C113.959 13.319 114.431 14.1498 115.034 14.8939C115.65 15.6255 116.549 16.3943 117.731 17.2004C119.089 18.118 120.063 18.955 120.654 19.7114C121.245 20.4555 121.54 21.2801 121.54 22.1854C121.54 23.103 121.289 23.8284 120.786 24.3616C120.296 24.8949 119.56 25.1615 118.58 25.1615C116.857 25.1615 114.965 24.498 112.903 23.1712V28.1748C114.588 29.1049 116.631 29.5699 119.032 29.5699C121.483 29.5699 123.357 28.8941 124.652 27.5424ZM129.932 26.8142C131.441 28.6513 133.498 29.5699 136.103 29.5699C138.335 29.5699 140.248 29.092 141.844 28.1362V24.0585C140.149 25.064 138.491 25.5667 136.87 25.5667C135.598 25.5667 134.601 25.1198 133.878 24.2261C133.155 23.32 132.833 22.0108 132.796 20.1613H142.742V17.4486C142.742 14.482 142.088 12.1794 140.778 10.5409C139.469 8.88998 137.681 8.0645 135.411 8.0645C132.98 8.0645 131.085 9.02649 129.726 10.9505C128.368 12.8745 127.688 15.5495 127.688 18.9755C127.688 22.3518 128.436 24.9647 129.932 26.8142ZM133.616 13.0172C134.077 12.2601 134.663 11.8815 135.374 11.8815C136.134 11.8815 136.733 12.2725 137.169 13.0545C137.605 13.8365 137.878 15.1523 137.903 16.6666H132.796C132.87 15.0902 133.155 13.762 133.616 13.0172ZM154.839 29.0322L154.032 26.3441H153.763C153.023 27.5584 152.309 28.4236 151.518 28.8821C150.727 29.3406 149.728 29.5699 148.523 29.5699C146.977 29.5699 145.759 28.9999 144.867 27.8599C143.988 26.7198 143.548 25.1337 143.548 23.1015C143.548 20.9206 144.151 19.3035 145.357 18.2503C146.575 17.1846 148.39 16.596 150.802 16.4845L153.59 16.373V14.886C153.59 12.9529 152.742 11.9864 151.047 11.9864C149.791 11.9864 148.346 12.4697 146.713 13.4362L144.98 10.0162C147.066 8.71504 149.298 8.0645 151.747 8.0645C153.97 8.0645 155.695 8.69649 156.85 9.96041C158.018 11.2119 158.602 12.9901 158.602 15.2949V29.0322H154.839ZM150.576 25.7037C151.493 25.7037 152.222 25.301 152.761 24.4956C153.314 23.6777 153.59 22.5935 153.59 21.2428V19.4956L152.046 19.57C150.903 19.6319 150.061 19.9541 149.521 20.5365C148.994 21.1189 148.73 21.9863 148.73 23.1387C148.73 24.8487 149.345 25.7037 150.576 25.7037ZM170.968 8.46772C170.392 8.28224 169.536 8.0645 168.937 8.0645C168.092 8.0645 167.351 8.34267 166.715 8.89907C166.078 9.45547 165.592 9.99208 165.054 11.2903H164.785L163.979 8.60213H160.215V29.0322H165.303V18.2796C165.303 16.4744 165.417 15.3098 166.054 14.3701C166.69 13.4181 167.602 12.9421 168.789 12.9421C169.34 12.9421 169.819 13.0484 170.161 13.172L170.968 8.46772ZM178.495 29.5699C176.045 29.5699 174.169 28.7516 172.889 26.9517C171.608 25.1518 170.968 22.5079 170.968 19.0199C170.968 15.3705 171.571 12.6458 172.777 10.846C173.997 9.04606 175.816 8.0645 178.352 8.0645C179.115 8.0645 179.974 8.25783 180.811 8.48127C181.648 8.70471 182.668 8.98654 183.333 9.40858L181.661 13.3037C180.639 12.6955 179.734 12.3914 178.946 12.3914C177.899 12.3914 177.142 12.9437 176.674 14.0485C176.219 15.1408 175.991 16.7855 175.991 18.9826C175.991 21.13 176.219 22.7375 176.674 23.805C177.13 24.8601 177.875 25.3877 178.909 25.3877C180.14 25.3877 181.427 24.9532 182.769 24.0843V28.4413C181.476 29.2481 180.058 29.5699 178.495 29.5699Z" fill="#003B5C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M57.9446 25.9475C59.6376 23.5326 60.4839 20.0774 60.4839 15.582C60.4839 11.0866 59.6436 7.63763 57.9635 5.23513C56.2828 2.82024 53.8678 1.61279 50.7187 1.61279C47.5322 1.61279 45.0924 2.81405 43.3995 5.21655C41.7067 7.60666 40.8602 11.0495 40.8602 15.5448C40.8602 20.0774 41.7067 23.5511 43.3995 25.966C45.0924 28.3685 47.5197 29.5698 50.6814 29.5698C53.8307 29.5698 56.2516 28.3624 57.9446 25.9475ZM47.2272 22.6595C46.443 21.0371 46.0509 18.678 46.0509 15.582C46.0509 12.4736 46.443 10.1145 47.2272 8.50451C48.0114 6.8822 49.1752 6.07107 50.7187 6.07107C53.7559 6.07107 55.2747 9.24134 55.2747 15.582C55.2747 21.9226 53.7435 25.093 50.6814 25.093C49.1628 25.093 48.0114 24.2818 47.2272 22.6595ZM68.9172 29.031C69.607 29.4293 70.3495 29.5698 71.2366 29.5698C73.1344 29.5698 74.6774 28.6701 75.7742 26.7532C76.871 24.8365 77.4194 22.1915 77.4194 18.8184C77.4194 15.3955 76.8893 12.7506 75.8296 10.8836C74.7699 9.00414 73.3038 8.06441 71.4307 8.06441C69.4839 8.06441 67.9581 9.22403 66.9355 11.2902H66.6667L65.8602 8.60204H62.0968V38.4408H66.9355V29.5698C66.9355 29.2213 66.864 28.0367 66.6667 26.344H66.9355C67.3387 27.5537 68.2393 28.6203 68.9172 29.031ZM67.6785 13.6468C68.1102 12.7382 68.8059 12.2839 69.7672 12.2839C70.6667 12.2839 71.3258 12.8191 71.7452 13.8895C72.1764 14.9599 72.392 16.578 72.392 18.7438C72.392 23.1499 71.5296 25.353 69.8043 25.353C68.8059 25.353 68.0914 24.8302 67.6602 23.7847C67.229 22.7391 67.0135 21.0713 67.0135 18.7811V18.1276C67.0382 16.0366 67.2597 14.543 67.6785 13.6468ZM86.9097 29.5698C84.3043 29.5698 82.2473 28.6512 80.7387 26.8141C79.2425 24.9646 78.4946 22.3517 78.4946 18.9754C78.4946 15.5494 79.1742 12.8744 80.5328 10.9504C81.892 9.0264 83.7866 8.06441 86.2178 8.06441C88.4871 8.06441 90.2758 8.88989 91.585 10.5408C92.8941 12.1793 93.5484 14.4819 93.5484 17.4485V20.1612H83.6022C83.6398 22.0107 83.9613 23.3199 84.6844 24.226C85.4075 25.1197 86.4049 25.5666 87.6764 25.5666C89.2973 25.5666 90.9554 25.0639 92.6506 24.0584V28.1361C91.0549 29.0919 89.1414 29.5698 86.9097 29.5698ZM86.1807 11.8814C85.4699 11.8814 84.8839 12.26 84.4226 13.0171C83.9613 13.7619 83.6769 15.0901 83.6022 16.6666H88.7097C88.685 15.1522 88.4118 13.8364 87.9758 13.0544C87.5393 12.2724 86.9409 11.8814 86.1807 11.8814ZM105.645 16.6666V29.0321H110.484V15.6983C110.484 13.2036 110.012 11.3076 109.069 10.0103C108.138 8.71306 106.729 8.06441 104.842 8.06441C103.726 8.06441 102.751 8.33881 101.919 8.88769C101.088 9.42403 100.447 10.3297 100 11.2902H99.7312L99.0592 8.60204H95.1613V29.0321H100.269V19.2203C100.269 16.6882 100.362 14.9624 100.859 13.9021C101.355 12.8294 102.137 12.293 103.204 12.293C104.011 12.293 104.595 12.6797 104.954 13.4531C105.315 14.2264 105.645 15.1573 105.645 16.6666Z" fill="#005EB8"/>
</g>
<defs>
<clipPath id="clip0_723_1352">
<rect width="200" height="38.7097" fill="white"/>
</clipPath>
</defs>
</svg>
</a>
<div class="menu-button">
<i class="icon icon-reorder"></i>
<i class="icon icon-close"></i>
<span>Menu</span>
</div>
<div role="navigation" class="navigation-container--nested-nav-wrapper nav-menu-on">
<ul class="navigation-container--nested-nav-wrapper--nested-nav">
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav-top-menu-item--wrapper__has_children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="#" >OpenSearchCon</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div>
<ul>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/events/opensearchcon/2024/north-america/index.html" data-ischild="true">2024 North America</a>
</li>
<li class="nested-nav--top-menu-item__has-grandchildren"><div class="nested-nav--top-menu-item-wrapper__has-grandchildren--wrapper nested-nav--top-menu-item--wrapper__has-children__has-grandchildren">
<div class="nested-nav--top-menu-item-wrapper__has-grandchildren--wrapper--link">
<a href="" data-ischild="true">Archive</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div><ul><li>
<a href="/events/opensearchcon/2024/india/index.html" data-isgrandchild="true">2024 India</a>
</li><li>
<a href="/events/opensearchcon/2024/europe/index.html" data-isgrandchild="true">2024 Europe</a>
</li><li>
<a href="/events/opensearchcon/2023/north-america/index.html" data-isgrandchild="true">2023 North America</a>
</li><li>
<a href="/events/opensearchcon/2022/north-america/index.html" data-isgrandchild="true">2022 North America</a>
</li></ul></li></ul>
</li>
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav--top-menu-item--wrapper__without-children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="/downloads.html" >Download</a>
</div></div>
</li>
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav-top-menu-item--wrapper__has_children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="/about.html" >About</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div>
<ul>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/releases.html" data-ischild="true">Releases</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="https://github.com/orgs/opensearch-project/projects/220" data-ischild="true">Roadmap</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/faq/" data-ischild="true">FAQ</a>
</li></ul>
</li>
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav-top-menu-item--wrapper__has_children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="#" >Community</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div>
<ul>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/blog/" data-ischild="true">Blog</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="https://forum.opensearch.org/" data-ischild="true">Forum</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/slack.html" data-ischild="true">Slack</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/events" data-ischild="true" class="events-page-menu-link__device-based">Events</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/partners/" data-ischild="true">Partners</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/community_projects/" data-ischild="true">Projects</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/community/members/index.html" data-ischild="true">Members</a>
</li></ul>
</li>
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav-top-menu-item--wrapper__has_children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="/docs/latest/" >Documentation</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div>
<ul>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/docs/latest/about/" data-ischild="true">OpenSearch and Dashboards</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/docs/latest/data-prepper/" data-ischild="true">Data Prepper</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/docs/latest/clients/" data-ischild="true">Clients</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/docs/latest/benchmark/" data-ischild="true">Benchmark</a>
</li></ul>
</li>
<li data-istoplevel="true"><div class="nested-nav--top-menu-item-wrapper nested-nav-top-menu-item--wrapper__has_children">
<div class="nested-nav--top-menu-item-wrapper--link">
<a data-isparent="true" href="/platform/index.html" >Platform</a>
</div><div class="nested-nav--top-menu-item-wrapper--toggle">
<div class="opensearch-toggle-button--wrapper">
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--untoggled opensearch-toggle-button-link__visible">
<svg width="30" height="31" viewBox="0 0 30 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="14" width="30" height="3" fill="#0085B8"/>
<rect x="13.5" y="30.5" width="30" height="3" transform="rotate(-90 13.5 30.5)" fill="#0085B8"/>
</svg>
</a>
<a href="#" class="opensearch-toggle-button-link opensearch-toggle-button-link--toggled opensearch-toggle-button-link__invisible">
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect y="13.5" width="30" height="3" fill="#0085B8"/>
</svg>
</a>
</div>
</div></div>
<ul>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/platform/search/index.html" data-ischild="true">Search</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/platform/observability/index.html" data-ischild="true">Observability</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/platform/security-analytics/index.html" data-ischild="true">Security Analytics</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/platform/search/vector-database.html" data-ischild="true">Vector Database</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="https://playground.opensearch.org/" data-ischild="true">Playground Demo</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/benchmarks/" data-ischild="true">Performance Benchmarks</a>
</li>
<li class="nested-nav--top-menu-item__without-grandchildren">
<a href="/release-dashboard/" data-ischild="true">Release Dashboard</a>
</li></ul>
</li>
<li class="top-banner-search">
<div class="top-banner-search--field-with-results">
<div class="top-banner-search--field-with-results--field">
<div class="top-banner-search--field-with-results--field--wrapper">
<div class="top-banner-search--field-with-results--field--wrapper--search-component">
<div class="top-banner-search--field-with-results--field--wrapper--search-component--input-wrap">
<input type="text" id="search-input" class="top-banner-search--field-with-results--field--wrapper--search-component--search-input"
placeholder="Search for anything" aria-label="Search OpenSearch"
data-docs-version="latest" autocomplete="off"
>
<div class="top-banner-search--field-with-results--field--wrapper--search-component--search-spinner"><i></i></div>
<label for="search-input" class="top-banner-search--field-with-results--field--wrapper--search-component--search-label">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="top-banner-search--field-with-results--field--wrapper--search-component--search-icon" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</label>
</div>
<div id="search-results" class="top-banner-search--field-with-results--field--wrapper--search-component--search-results">
<div class="top-banner-search--field-with-results--field--wrapper--search-component--search-results-wrapper"></div>
</div>
</div>
</div>
</div>
</div>
<div class="top-banner-search--overlay"></div>
</li>
</ul>
</div>
</div>
</div>
<script type="module">
document.addEventListener('DOMContentLoaded', () => {
const menu = document.querySelector('#top .nav-menu-on');
const button = document.querySelector('#top .menu-button');
button.addEventListener('click', () => {
menu.classList.toggle('active');
button.classList.toggle('active');
});
const isMobile = window.matchMedia('only screen and (max-width: 834px)').matches;
const currentPageIsEventsList = /^\/events\/$/.test(window.location.pathname);
function getDeviceAndLocationBasedEventsMenuItemURL() {
if (!isMobile && !currentPageIsEventsList) {
const now = new Date();
const monthNumber = now.getUTCMonth() + 1;
const year = now.getFullYear();
const thisMonthCalendarUrl = `/events/calendar/${year}-${monthNumber < 10 ? `0${monthNumber}` : monthNumber}.html`;
return thisMonthCalendarUrl;
} else {
return '/events/';
}
}
// Initialize the calendar view menu item to target the current month
// if not on mobile, and if the current page is not the events list page.
// On mobile the Community -> Events menu item links to the non-calendar
// events list page, and if the current page is the non-calendar events
// list page regardless of the device then set that menu item to /events/index.html
// which will allow for proper menu item highlighting.
const eventsLinkSelector = 'a.events-page-menu-link__device-based';
const eventsLinkElements = document.querySelectorAll(eventsLinkSelector);
eventsLinkElements.forEach(eventsLink => {
eventsLink.setAttribute('href', getDeviceAndLocationBasedEventsMenuItemURL());
});
// Add the in-category class to the navigation menu items that the current page belongs to.
function highlightTopNavigationItems() {
const highlightElement = (element) => {
const HIGHLIGHT_CLASS_NAME = 'in-category';
element?.classList?.add?.(HIGHLIGHT_CLASS_NAME);
};
const highlightParentOfChild = (childLink) => {
const parentOfChild = childLink.parentElement.closest('li[data-istoplevel]');
const topLevelLinkSelector = 'a[data-isparent]';
const topLevelLink = parentOfChild.querySelector(topLevelLinkSelector);
highlightElement(topLevelLink);
};
const highlightChildFromGrandchild = (grandChildLink) => {
highlightElement(grandChildLink);
const parentMenuItemSelector = 'li.nested-nav--top-menu-item__has-grandchildren';
const parentMenuItem = grandChildLink.closest(parentMenuItemSelector);
const parentMenuItemLink = parentMenuItem.querySelector('.nested-nav--top-menu-item-wrapper__has-grandchildren--wrapper--link > a');
highlightElement(parentMenuItemLink);
highlightParentOfChild(parentMenuItem);
};
const highlightChildWithoutGrandChildren = (childLink) => {
highlightElement(childLink);
highlightParentOfChild(childLink.parentElement);
};
const matchAndHighlight = (topElement, hrefSelector) => {
const matchingElement = topElement.querySelector(hrefSelector);
if (matchingElement) {
if (matchingElement.hasAttribute('data-isgrandchild')) {
highlightChildFromGrandchild(matchingElement);
} else if (matchingElement.hasAttribute('data-ischild')) {
highlightElement(matchingElement);
highlightParentOfChild(matchingElement);
} else if (matchingElement.hasAttribute('data-isparent')) {
highlightElement(matchingElement);
}
return true;
}
return false;
};
// There are pages on the site that are not present in the top navigation header menu.
// This is a mapping of those pages to what menu item should be highlighted when those pages
// are the current page.
const exceptionsOverrideMap = {
['/events/past.html']: getDeviceAndLocationBasedEventsMenuItemURL(),
['/new-partner.html']: '/partners/',
['/new-community-project.html']: '/community_projects/',
};
const thisPagePath = window.location.pathname;
const topElement = document.getElementById('top');
let exactMatchingMenuItemSelector = `a[href$="${thisPagePath}"]`;
if ((typeof exceptionsOverrideMap[thisPagePath]) !== 'undefined') {
const overridePath = exceptionsOverrideMap[thisPagePath];
exactMatchingMenuItemSelector = `a[href$="${overridePath}"]`;
}
const exactMatchHighlighted = matchAndHighlight(topElement, exactMatchingMenuItemSelector);
if (!exactMatchHighlighted) {
const thisPagePathParts = thisPagePath.split('/');
while ((typeof thisPagePathParts.pop()) !== 'undefined') {
const pathOfRemainingParts = thisPagePathParts.join('/');
const urlPathSelector = `a[href*="${pathOfRemainingParts}"]`;
const matched = matchAndHighlight(topElement, urlPathSelector);
if (matched) {
break;
}
}
}
}
highlightTopNavigationItems();
});
</script>
<script type="module">
document.addEventListener('DOMContentLoaded', () => {
const EXPANDED_HEIGHT_PROPERTY = '--expanded-height';
function getSubMenu(button) {
const parentLI = button.closest('li');
const childUL = parentLI.querySelector('ul');
return childUL;
}
function initializeCustomMenuHeights(button) {
const childUL = getSubMenu(button);
const subExpandableMenus = childUL.querySelectorAll('.nested-nav--top-menu-item__has-grandchildren > ul');
let subMenuHeightSum = 0;
if (subExpandableMenus.length > 0) {
Array.from(subExpandableMenus).reverse().forEach(subMenu => {
if (subMenu.classList.contains('nested-nav--menu__mobile-hidden-collapsed')) {
return;
}
const subMenuHeight = subMenu.scrollHeight;
subMenu.style.setProperty(EXPANDED_HEIGHT_PROPERTY, `${subMenuHeight}px`);
subMenu.classList.add('nested-nav--menu__mobile-hidden-collapsed');
});
}
if (childUL?.classList?.contains?.('nested-nav--menu__mobile-hidden-collapsed')) {
return;
}
const height = (childUL?.scrollHeight ?? 0) - subMenuHeightSum;
childUL?.style?.setProperty?.(EXPANDED_HEIGHT_PROPERTY, `${height}px`);
childUL?.classList?.add?.('nested-nav--menu__mobile-hidden-collapsed');
}
function onNestedNavMenuTransitionEnd(e) {
const collapsedClass = 'nested-nav--menu__mobile-hidden-collapsed';
const { target } = e;
if (!target?.hasAttribute?.('expanded')) {
target?.classList?.add?.(collapsedClass);
}
}
function swapToggleButtonState(toggle) {
const visibleClassName = 'opensearch-toggle-button-link__visible';
const visibleSelector = `.${visibleClassName}`;
const invisibleClassName = 'opensearch-toggle-button-link__invisible';
const invisibleSelector = `.${invisibleClassName}`;
const visibleLink = toggle.querySelector(visibleSelector);
const invisibleLink = toggle.querySelector(invisibleSelector);
visibleLink.classList.remove(visibleClassName);
visibleLink.classList.add(invisibleClassName);
invisibleLink.classList.remove(invisibleClassName);
invisibleLink.classList.add(visibleClassName);
}
function onToggleButtonClick(e) {
const toggle = e.currentTarget;
swapToggleButtonState(toggle);
const childUL = getSubMenu(toggle);
const isAlreadyExpanded = childUL?.hasAttribute?.('expanded') ?? false;
if (childUL.classList.contains('nested-nav--menu__mobile-hidden-collapsed')) {
childUL?.classList?.remove?.('nested-nav--menu__mobile-hidden-collapsed');
}
window.setTimeout(() => {
if (isAlreadyExpanded) {
// If the menu is already expanded then the toggleAttribute
// call is going to collapse.
// Ensure that all (if any) grandchildren / sub menus are
// also collapsed, and subtract their --expanded-height custom CSS
// property value from the containing.
const expandedSubMenu = childUL?.querySelectorAll('ul[expanded]');
const expandedHeight = Number.parseInt(childUL.style.getPropertyValue(EXPANDED_HEIGHT_PROPERTY), 10);
if (expandedSubMenu.length > 0) {
let reducedExpandedHeight = expandedHeight;
expandedSubMenu.forEach(subMenu => {
const subMenuToggle = subMenu.parentElement.querySelector('.opensearch-toggle-button--wrapper');
swapToggleButtonState(subMenuToggle);
subMenu.toggleAttribute('expanded');
const subMenuExpandedHeightPropertyValue = subMenu.style.getPropertyValue(EXPANDED_HEIGHT_PROPERTY);
const numericSubMenuExpandedHeight = Number.parseInt(subMenuExpandedHeightPropertyValue, 10);
reducedExpandedHeight -= numericSubMenuExpandedHeight;
});
childUL.style.setProperty(EXPANDED_HEIGHT_PROPERTY, `${reducedExpandedHeight}px`);
} else {
// Subtract the --expanded-height of the collapsing menu from the --expanded-height of the enclosing parent.
// If there is an expandable / collapsable parent.
const expandedParentMenu = childUL?.parentElement?.closest?.('ul[expanded]');
if (expandedParentMenu) {
const parentMenuExpandedHeight = expandedParentMenu.style.getPropertyValue(EXPANDED_HEIGHT_PROPERTY);
const numericExpandedHeight = Number.parseInt(parentMenuExpandedHeight, 10);
const reducedExpandedHeight = numericExpandedHeight - expandedHeight;
const formattedExpandedHeight = `${reducedExpandedHeight}px`;
expandedParentMenu.style.setProperty(EXPANDED_HEIGHT_PROPERTY, formattedExpandedHeight);
}
}
} else {
// If the menu is not yet expanded then ensure that
// the expandedHeight is added to any parent expandable
// list, if any.
const expandedHeightPropertyValue = childUL?.style?.getPropertyValue?.(EXPANDED_HEIGHT_PROPERTY) ?? '';
const numericExpandedHeight = Number.parseInt(expandedHeightPropertyValue, 10);
const childULParent = childUL?.parentElement;
if (childULParent) {
if (childULParent.classList.contains('nested-nav--top-menu-item__has-grandchildren')) {
const containingUL = childULParent.closest('ul');
if (containingUL) {
const expandedHeight = containingUL.style.getPropertyValue(EXPANDED_HEIGHT_PROPERTY);
if (expandedHeight !== '') {
const parentPixelHeight = Number.parseInt(expandedHeight, 10);
const totalParentPixelHeightForParent = parentPixelHeight + numericExpandedHeight;
const formattedParentPixelHeight = `${totalParentPixelHeightForParent}px`;
containingUL.style.setProperty(EXPANDED_HEIGHT_PROPERTY, formattedParentPixelHeight);
}
}
}
}
}
childUL?.toggleAttribute?.('expanded');
}, 60);
}
const topNavigationToggleButtons = document.querySelectorAll('#top .opensearch-toggle-button--wrapper');
for (let i = 0; i < topNavigationToggleButtons.length; ++i) {
const button = topNavigationToggleButtons[i];
initializeCustomMenuHeights(button);
button.addEventListener('click', onToggleButtonClick);
}
document.querySelector('#top .navigation-container--nested-nav-wrapper--nested-nav')?.addEventListener?.('transitionend', onNestedNavMenuTransitionEnd);
});
</script>
<main class="container">
<div class="page-without-hero">
<div class="full-width-layout--header">
<div class="full-width-layout--header--title">
<h1>About OpenSearch</h1>
</div>
</div><div class="full-width-layout--content ">
<div class="full-width-layout--content--body ">
<h5 id="updated-december-20-2022">Updated December 20, 2022</h5>
<ul>
<li><a href="#principles-for-development">Principles for development</a></li>
<li><a href="#founding-documents">Founding Documents</a></li>
<li><a href="#opensearch-disambiguation">OpenSearch disambiguation</a></li>
</ul>
<p>OpenSearch is a community-driven, open-source search and analytics suite used by developers to ingest, search, visualize, and analyze data. OpenSearch consists of a data store and search engine (OpenSearch), a visualization and user interface (OpenSearch Dashboards), and a server-side data collector (Data Prepper). Users can extend the functionality of OpenSearch with a selection of plugins that enhance search, analytics, observability, security, machine learning, and more.</p>
<p>The OpenSearch Project was <a href="https://aws.amazon.com/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/">first announced in January 2021</a> as an open-source fork of Elasticsearch and Kibana to provide a secure, high-quality, fully open-source search and analytics suite with a rich feature roadmap. <a href="https://opensearch.org/blog/updates/2021/07/opensearch-general-availability-announcement/">In July 2021</a>, the project released OpenSearch 1.0 for production under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> (ALv2), with the codebase <a href="https://github.com/opensearch-project">published to GitHub</a> and open to contribution from the OpenSearch community. A comprehensive project roadmap is maintained <a href="https://github.com/orgs/opensearch-project/projects/220">here</a>.</p>
<p>Since the start of the project, the OpenSearch community has grown to 100s of contributors, 1000s of pull requests, 1000s of issues closed, and is organized across more than 90 repositories. In November 2022, OpenSearch <a href="https://opensearch.org/blog/opensearch-2-4-is-available-today/">released version 2.4</a> of the project with the introduction of Windows distributions and enhancements to cluster resiliency, search functionality, analytics tools, and more.</p>
<p>The latest release of OpenSearch is available for <a href="https://opensearch.org/downloads.html">download here</a>.</p>
<p>As a fully open source solution, OpenSearch offers you the freedom to modify, extend, monetize, and resell the product as you see fit, as well as the flexibility to deploy on a variety of infrastructures. At the same time, the OpenSearch project provides a secure, high-quality search and analytics suite with a rich <a href="https://github.com/orgs/opensearch-project/projects/220">roadmap</a> of new and innovative functionality.</p>
<p>OpenSearch is built with your input. The project is maintained and advanced by a <a href="https://forum.opensearch.org/">community</a>, including a network of <a href="https://opensearch.org/partners/">partners</a>, and is open to contribution. We invite you to get <a href="https://opensearch.org/connect.html">involved</a>.</p>
<h2 id="principles-for-development">Principles for development</h2>
<p>When we (the contributors) are successful, OpenSearch will be:</p>
<div class="principles-for-development"><div>
<h2 id="great-software">Great software.</h2>
<p>If it doesn’t solve your problems, everything else is moot. It’s going to be software you love to use.</p>
<h2 id="open-source-like-we-mean-it">Open source like we mean it.</h2>
<p>We are invested in this being a successful open-source project for the long term. It’s all Apache 2.0. There’s no Contributor License Agreement. Easy.</p>
<h2 id="a-level-playing-field">A level playing field.</h2>
<p>We will not tweak the software so that it runs better for any vendor (including AWS) at the expense of others. If this happens, call it out and we will fix it as a community.</p>
<h2 id="used-everywhere">Used everywhere.</h2>
<p>Our goal is for as many people as possible to use it in their business, their software, and their projects. Use it however you want. Surprise us!</p>
<h2 id="made-with-your-input">Made with your input.</h2>
<p>We will ask for public input on direction, requirements, and implementation for any feature we build.</p>
<h2 id="open-to-contributions">Open to contributions.</h2>
<p>Great open-source software is built together, with a diverse community of contributors. If you want to get involved at any level - big, small, or huge - we will find a way to make that happen. We don’t know what that looks like yet, and we look forward to figuring it out together.</p>
<h2 id="respectful-approachable-and-friendly">Respectful, approachable, and friendly.</h2>
<p>This will be a community where you will be heard, accepted, and valued, whether you are a new or experienced user or contributor.</p>
<h2 id="a-place-to-invent">A place to invent.</h2>
<p>You will be able to innovate rapidly. This project will have a stable and predictable foundation that is modular, making it easy to extend.</p>
</div></div>
<h2 id="opensearch-disambiguation">OpenSearch disambiguation</h2>
<p>At the 2005 O’Reilly Emerging Technology Conference, Jeff Bezos <a href="https://www.technologyreview.com/2005/03/15/231423/jeff-bezos-unveils-vertical-search-live-from-the-oreilly-e-tech-conference/">showed the world</a> the OpenSearch syndication protocol. You can find more details on <a href="https://en.wikipedia.org/wiki/OpenSearch">Wikipedia</a>. This specification is maintained in GitHub at <a href="https://github.com/dewitt/opensearch">github.com/dewitt/opensearch</a>.</p>
</div><div class="solutions-card-grid"><h2 id="founding-documents">Founding Documents</h2>
<div class="tall-card__no-image--grid solutions-card-grid--card-wrapper">
<div class="tall-card__no-image--grid--card solutions-card-grid--card-wrapper--card ">
<h4 class="tall-card__no-image--grid--card--category">Amazon Web Services</h4>
<h3 class="tall-card__no-image--grid--card--title"><a href="https://aws.amazon.com/blogs/opensource/introducing-opensearch" target="_blank" >Introducing OpenSearch</a></h3>
<div class="tall-card__no-image--grid--card--footer"><div class="tall-card__no-image--grid--card--footer--icon">
<svg width="73" height="73" viewBox="0 0 73 73" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M72.16 33.7101C72.15 33.5401 72.1301 33.3701 72.1201 33.2101C72.1001 33.0101 72.0801 32.8101 72.0601 32.6101C72.0401 32.4001 72.0101 32.1901 71.9901 31.9901C71.9601 31.7001 71.9201 31.4101 71.8801 31.1301C71.8401 30.8601 71.8001 30.6001 71.7601 30.3301C71.7001 30.0301 71.6501 29.7201 71.5901 29.4201C71.5401 29.1701 71.4901 28.9101 71.4401 28.6601C71.4201 28.6101 71.4101 28.5501 71.4001 28.5001C71.3401 28.2401 71.28 27.9801 71.22 27.7301C71.17 27.5001 71.1101 27.2701 71.05 27.0401C70.8801 26.4201 70.7001 25.8001 70.5001 25.1801C70.4201 24.9201 70.33 24.6501 70.23 24.3901C70.18 24.2301 70.1201 24.0701 70.0601 23.9101C69.9601 23.6401 69.8601 23.3601 69.7501 23.0901C69.6401 22.8201 69.53 22.5501 69.42 22.2801C69.31 22.0101 69.1901 21.7401 69.0701 21.4801C68.9501 21.2101 68.8201 20.9401 68.7001 20.6801L68.3101 19.9001C68.1801 19.6401 68.0401 19.3901 67.9001 19.1301C67.7601 18.8801 67.62 18.6201 67.48 18.3701C67.33 18.1201 67.19 17.8701 67.04 17.6301C66.89 17.3801 66.7301 17.1301 66.5801 16.8901C66.4301 16.6501 66.27 16.4101 66.1 16.1701C65.94 15.9301 65.7801 15.7001 65.6201 15.4601C65.4501 15.2201 65.2701 14.9801 65.0901 14.7501C64.9201 14.5201 64.7501 14.2901 64.5701 14.0701C64.2201 13.6201 63.86 13.1801 63.47 12.7401C62.9 12.0901 62.3201 11.4601 61.7001 10.8501L34.8301 37.7201L28.35 44.1901L26.3 46.2401L21.6501 50.8901L10.8 61.7401V61.7501C11.61 62.5601 12.4701 63.3401 13.3501 64.0701C13.8001 64.4401 14.2501 64.7901 14.7101 65.1401C14.9401 65.3201 15.1801 65.4901 15.4101 65.6501C15.8801 65.9801 16.3601 66.3101 16.8501 66.6201C17.3401 66.9301 17.83 67.2301 18.33 67.5201C18.58 67.6701 18.8401 67.8101 19.0901 67.9501C19.6001 68.2201 20.1201 68.4901 20.6401 68.7401C21.1701 68.9901 21.7001 69.2301 22.2401 69.4601C22.5101 69.5801 22.78 69.6901 23.05 69.7901C23.59 70.0101 24.1401 70.2101 24.7001 70.4001C25.4101 70.6401 26.1201 70.8501 26.8401 71.0501C27.5601 71.2401 28.2901 71.4201 29.0301 71.5601C29.2701 71.6101 29.5201 71.6601 29.7701 71.7101C30.1101 71.7701 30.45 71.8301 30.8 71.8801C31.09 71.9201 31.38 71.9601 31.67 72.0001C32.27 72.0801 32.87 72.1401 33.48 72.1901C33.89 72.2201 34.3 72.2401 34.72 72.2501C35.14 72.2701 35.56 72.2801 35.97 72.2801C36.16 72.2901 36.3401 72.2901 36.5301 72.2801C36.9401 72.2801 37.3601 72.2701 37.7801 72.2501C38.2001 72.2401 38.6101 72.2201 39.0201 72.1901C39.6301 72.1401 40.2301 72.0801 40.8301 72.0001C41.1201 71.9601 41.4101 71.9201 41.7001 71.8801C42.0501 71.8301 42.39 71.7701 42.73 71.7101C42.98 71.6601 43.23 71.6101 43.47 71.5601C44.21 71.4201 44.94 71.2401 45.66 71.0501C46.38 70.8601 47.09 70.6401 47.8 70.4001C48.3601 70.2101 48.9101 70.0101 49.4501 69.7901C49.7201 69.6901 49.9901 69.5801 50.2601 69.4601C50.8001 69.2301 51.33 68.9901 51.86 68.7401C52.38 68.4901 52.9 68.2201 53.41 67.9501C53.66 67.8101 53.92 67.6701 54.17 67.5201C54.67 67.2301 55.1601 66.9301 55.6501 66.6201C56.1401 66.3101 56.6201 65.9801 57.0901 65.6501C57.3201 65.4901 57.56 65.3201 57.79 65.1401C58.25 64.7901 58.7001 64.4401 59.1501 64.0701C60.0301 63.3401 60.8901 62.5601 61.7001 61.7501C62.3101 61.1401 62.9 60.5101 63.47 59.8501C63.86 59.4101 64.2201 58.9701 64.5701 58.5201C64.7501 58.3001 64.9201 58.0701 65.0901 57.8401C65.2701 57.6101 65.4501 57.3701 65.6201 57.1301C65.7801 56.8901 65.94 56.6601 66.1 56.4201C66.27 56.1801 66.4301 55.9401 66.5801 55.7001C66.7301 55.4601 66.89 55.2101 67.04 54.9601C67.19 54.7201 67.33 54.4701 67.48 54.2201C67.62 53.9701 67.7601 53.7101 67.9001 53.4601C68.0401 53.2001 68.1801 52.9501 68.3101 52.6901C68.4401 52.4301 68.5701 52.1701 68.7001 51.9001C68.8301 51.6401 68.9501 51.3801 69.0701 51.1101C69.1901 50.8501 69.31 50.5801 69.42 50.3101C69.53 50.0401 69.6401 49.7701 69.7501 49.5001C69.9201 49.0701 70.08 48.6501 70.23 48.2101C70.38 47.7901 70.5101 47.3701 70.6401 46.9501C70.7301 46.6901 70.8101 46.4201 70.8801 46.1501C70.9501 45.9201 71.0101 45.6901 71.0701 45.4601C71.1201 45.2601 71.17 45.0601 71.22 44.8701C71.28 44.6101 71.3401 44.3601 71.4001 44.1001C71.5301 43.4901 71.6501 42.8701 71.7601 42.2601C71.8001 42.0001 71.8401 41.7301 71.8801 41.4701C71.9501 40.9601 72.0101 40.4701 72.0601 39.9701C72.0901 39.7401 72.1101 39.5101 72.1301 39.2801C72.2801 37.4201 72.29 35.5601 72.16 33.7101Z" fill="#FED098"/>
<path d="M61.7 10.84V10.85L55.1 17.45C54 14.35 51.05 12.13 47.58 12.13C43.17 12.13 39.59 15.71 39.59 20.12C39.59 23.59 41.81 26.54 44.91 27.64L34.83 37.72C35.53 33.64 38.36 30.28 42.14 28.82C40.69 27.9 39.48 26.64 38.63 25.15V25.14C36.98 24.13 35.05 23.55 32.99 23.55C27.01 23.55 22.15 28.42 22.15 34.39C22.15 38.71 24.69 42.45 28.35 44.19L26.3 46.24C22.17 43.9 19.38 39.47 19.38 34.39C19.38 26.89 25.48 20.79 32.99 20.79C34.53 20.79 36.02 21.05 37.41 21.53C37.34 21.07 37.31 20.6 37.31 20.12C37.31 17.1 38.62 14.39 40.7 12.51L38.92 11.82L36.97 14.08C36.67 14.43 36.21 14.61 35.75 14.55C33.62 14.27 31.47 14.33 29.35 14.71C28.9 14.8 28.43 14.65 28.11 14.31L26.01 12.13L21.21 14.23L21.43 17.25C21.47 17.72 21.26 18.18 20.88 18.46C19.16 19.73 17.69 21.28 16.51 23.05C16.24 23.45 15.79 23.68 15.31 23.67L12.29 23.58L10.41 28.46L12.67 30.41C13.02 30.71 13.2 31.17 13.14 31.63C12.86 33.76 12.92 35.91 13.31 38.03C13.39 38.48 13.24 38.95 12.9 39.27L10.72 41.37L12.82 46.17L15.84 45.95C16.31 45.91 16.77 46.12 17.05 46.5C18.32 48.22 19.87 49.69 21.64 50.88C21.64 50.88 21.65 50.88 21.65 50.89L10.8 61.74C4.27999 55.23 0.25 46.23 0.25 36.29C0.25 16.41 16.37 0.290039 36.25 0.290039C46.19 0.290039 55.19 4.32003 61.7 10.84Z" fill="#FEEAD7"/>
<path d="M42.14 28.8201C38.36 30.2801 35.53 33.6401 34.83 37.7201L28.35 44.1901C24.69 42.4501 22.15 38.7101 22.15 34.3901C22.15 28.4201 27.01 23.55 32.99 23.55C35.05 23.55 36.98 24.1301 38.63 25.1401V25.1501C39.48 26.6401 40.69 27.9001 42.14 28.8201Z" fill="#1471B9"/>
<path d="M34.83 37.72C34.71 38.37 34.65 39.04 34.65 39.73V45.11C34.11 45.19 33.55 45.23 32.99 45.23C31.33 45.23 29.76 44.86 28.35 44.19L34.83 37.72Z" fill="#005693"/>
<path d="M37.31 20.1201C37.31 20.6001 37.34 21.0701 37.41 21.5301C36.02 21.0501 34.53 20.7901 32.99 20.7901C25.48 20.7901 19.38 26.8901 19.38 34.3901C19.38 39.4701 22.17 43.9001 26.3 46.2401L21.65 50.8901C21.65 50.8801 21.64 50.8801 21.64 50.8801C19.87 49.6901 18.32 48.2201 17.05 46.5001C16.77 46.1201 16.31 45.9101 15.84 45.9501L12.82 46.1701L10.72 41.3701L12.9 39.2701C13.24 38.9501 13.39 38.4801 13.31 38.0301C12.92 35.9101 12.86 33.7601 13.14 31.6301C13.2 31.1701 13.02 30.7101 12.67 30.4101L10.41 28.4601L12.29 23.58L15.31 23.6701C15.79 23.6801 16.24 23.45 16.51 23.05C17.69 21.28 19.16 19.7301 20.88 18.4601C21.26 18.1801 21.47 17.7201 21.43 17.2501L21.21 14.2301L26.01 12.1301L28.11 14.3101C28.43 14.6501 28.9 14.8001 29.35 14.7101C31.47 14.3301 33.62 14.27 35.75 14.55C36.21 14.61 36.67 14.43 36.97 14.08L38.92 11.8201L40.7 12.5101C38.62 14.3901 37.31 17.1001 37.31 20.1201Z" fill="#1471B9"/>
<path d="M34.6501 47.89V54.33C33.1801 54.46 31.69 54.43 30.22 54.24C29.76 54.18 29.3 54.36 29 54.71L27.05 56.97L22.17 55.09L22.26 52.07C22.27 51.59 22.04 51.15 21.65 50.89L26.3 46.24C28.28 47.36 30.56 48 32.99 48C33.55 48 34.1001 47.96 34.6501 47.89Z" fill="#005693"/>
<path d="M55.0999 17.4501L44.9099 27.6401C41.8099 26.5401 39.59 23.5901 39.59 20.1201C39.59 15.7101 43.17 12.1301 47.58 12.1301C51.05 12.1301 53.9999 14.3501 55.0999 17.4501Z" fill="#955EA7"/>
<path d="M55.5599 20.1202C55.5599 24.5302 51.99 28.1002 47.58 28.1002C46.64 28.1002 45.7399 27.9402 44.9099 27.6402L55.0999 17.4502C55.3999 18.2802 55.5599 19.1802 55.5599 20.1202Z" fill="#7B418A"/>
<path d="M58.2199 55.05C58.2199 56.08 57.3799 56.92 56.3499 56.92H38.7999C37.7699 56.92 36.9299 56.08 36.9299 55.05V39.7201C36.9299 34.5201 41.14 30.3101 46.34 30.3101H48.8099C50.7399 30.3101 52.53 30.8901 54.02 31.8901C56.55 33.5801 58.2199 36.4501 58.2199 39.7201V55.05Z" fill="#7B418A"/>
</svg>
</div><div class="tall-card__no-image--grid--card--footer--date">
Mon, Apr 12, 2021
</div></div>
</div>
<div class="tall-card__no-image--grid--card solutions-card-grid--card-wrapper--card ">
<h4 class="tall-card__no-image--grid--card--category">Amazon Web Services</h4>
<h3 class="tall-card__no-image--grid--card--title"><a href="https://aws.amazon.com/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/" target="_blank" >Stepping up for a truly open source Elasticsearch</a></h3>
<div class="tall-card__no-image--grid--card--footer"><div class="tall-card__no-image--grid--card--footer--icon">
<svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M39.99 0.870117V70.6301C38.8 70.6301 37.62 70.5601 36.46 70.4201L27.05 79.1201C23.92 78.0501 20.95 76.6101 18.22 74.8501L19.15 62.1201C17.44 60.4601 15.94 58.5901 14.68 56.5601L2.16 54.6401C1.06 51.5901 0.33 48.3601 0 45.0001L10.32 37.9401C10.56 35.4401 11.11 33.0201 11.93 30.7401L5.76 20.0101C7.52 17.1601 9.61 14.5501 12 12.2301L23.72 15.8201C25.82 14.4501 28.11 13.3301 30.53 12.5201L35 1.19012C36.64 0.980117 38.3 0.870117 39.99 0.870117Z" fill="#012B45"/>
<path d="M80 45.0101C79.67 48.3701 78.94 51.6001 77.84 54.6501L65.33 56.5701C64.06 58.6001 62.56 60.4701 60.85 62.1301L61.78 74.8601C59.04 76.6201 56.08 78.0701 52.95 79.1301L43.53 70.4301C42.37 70.5701 41.2 70.6401 40 70.6401V0.870117C41.7 0.870117 43.36 0.970117 44.99 1.18012L49.48 12.5301C51.91 13.3401 54.19 14.4601 56.29 15.8301L68 12.2401C70.39 14.5601 72.49 17.1601 74.24 20.0101L68.07 30.7401C68.89 33.0201 69.44 35.4401 69.68 37.9401L80 45.0101Z" fill="#05182E"/>
<path d="M62.39 36.79H52.77C52.25 36.79 51.82 37.21 51.82 37.73V64.32C51.82 64.84 51.39 65.27 50.87 65.27H40V12.51C40.24 12.51 40.49 12.6 40.67 12.78L63.06 35.18C63.65 35.78 63.24 36.79 62.39 36.79Z" fill="#E3A324"/>
<path d="M40 12.51V65.26H29.13C28.61 65.26 28.18 64.83 28.18 64.31V37.73C28.18 37.21 27.75 36.79 27.23 36.79H17.61C16.77 36.79 16.35 35.77 16.94 35.18L39.34 12.78C39.51 12.6 39.75 12.51 40 12.51Z" fill="#FCB51D"/>
</svg>
</div><div class="tall-card__no-image--grid--card--footer--date">
Thu, Jan 21, 2021
</div></div>
</div>
<div class="tall-card__no-image--grid--card solutions-card-grid--card-wrapper--card ">
<h4 class="tall-card__no-image--grid--card--category">Amazon Web Services</h4>
<h3 class="tall-card__no-image--grid--card--title"><a href="https://aws.amazon.com/blogs/opensource/keeping-open-source-open-open-distro-for-elasticsearch/" target="_blank" >Keeping Open Source Open</a></h3>
<div class="tall-card__no-image--grid--card--footer"><div class="tall-card__no-image--grid--card--footer--icon">
<svg width="73" height="73" viewBox="0 0 73 73" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M36.6201 72.51C56.5024 72.51 72.6201 56.3923 72.6201 36.51C72.6201 16.6278 56.5024 0.51001 36.6201 0.51001C16.7379 0.51001 0.620117 16.6278 0.620117 36.51C0.620117 56.3923 16.7379 72.51 36.6201 72.51Z" fill="#DDECF8"/>
<path d="M62.0802 61.96C48.0202 76.02 25.2302 76.02 11.1702 61.96L62.0802 11.05C76.1402 25.11 76.1402 47.91 62.0802 61.96Z" fill="#8AC2E9"/>
<path d="M37.7001 42.1599C37.3601 42.3099 37.0001 42.3799 36.6301 42.3799C36.2701 42.3799 35.9001 42.3099 35.5601 42.1599C35.9101 42.2799 36.2701 42.3299 36.6301 42.3299C36.9901 42.3299 37.3501 42.2799 37.7001 42.1599Z" fill="#45C0BA"/>
<path d="M50.7001 22.4299L32.5601 40.57L21.9901 34.89L21.4601 34.59L20.9401 34.31L18.8401 33.1799L18.3101 32.8999L17.7801 32.61L12.3601 29.69C11.6401 29.3 11.6401 28.2799 12.3601 27.8999L35.3401 15.5399C35.7401 15.3299 36.1901 15.21 36.6301 15.21C37.0801 15.21 37.5101 15.3299 37.9201 15.5399L50.7001 22.4299Z" fill="#45C0BA"/>
<path d="M19.7801 39.13L29.0201 44.1L27.5501 45.58L18.8301 40.8999L12.3501 37.41C11.6301 37.04 11.6301 36.01 12.3501 35.63L17.7701 32.71L19.8901 33.85L14.9001 36.53L19.7801 39.13Z" fill="#FDBB4D"/>
<path d="M37.67 49.8699C37.34 50.0199 36.9901 50.0899 36.6301 50.0899C36.2701 50.0899 35.9001 50.0099 35.5601 49.8599C35.9001 49.9799 36.2601 50.0299 36.6301 50.0299C36.9801 50.0299 37.33 49.9799 37.67 49.8699Z" fill="#FDBB4D"/>
<path d="M20.9401 34.4001L32.5101 40.6101L29.0201 44.1001L19.7802 39.1301L14.9001 36.5101L19.9001 33.8301L20.4101 34.1101L20.9401 34.4001Z" fill="white"/>
<path d="M37.7001 42.1599C37.3601 42.3099 37.0001 42.3799 36.6301 42.3799C36.2701 42.3799 35.9001 42.3099 35.5601 42.1599C35.9101 42.2799 36.2701 42.3299 36.6301 42.3299C36.9901 42.3299 37.3501 42.2799 37.7001 42.1599Z" fill="white"/>
<path d="M18.3701 40.7099L27.5101 45.6199L22.5401 50.5899L12.3501 45.1099C11.6301 44.7299 11.6301 43.7099 12.3501 43.3299L17.7901 40.4099L18.3701 40.7099Z" fill="#8A4C9E"/>
<path d="M37.67 49.8699C37.34 50.0199 36.9901 50.0899 36.6301 50.0899C36.2701 50.0899 35.9001 50.0099 35.5601 49.8599C35.9001 49.9799 36.2601 50.0299 36.6301 50.0299C36.9801 50.0299 37.33 49.9799 37.67 49.8699Z" fill="#8A4C9E"/>
<path d="M60.8801 29.6999L55.4601 32.6199L54.9301 32.9099L54.41 33.1899L52.3101 34.3199L51.7801 34.6199L51.2601 34.8999L37.91 42.0799C37.87 42.0899 37.84 42.1099 37.8 42.1299C37.77 42.1499 37.7401 42.1599 37.6901 42.1699C37.3401 42.2899 36.9801 42.3399 36.6201 42.3399C36.2601 42.3399 35.9 42.2899 35.55 42.1699C35.51 42.1599 35.4801 42.1499 35.4401 42.1299C35.4101 42.1099 35.3801 42.0899 35.3301 42.0799L32.55 40.5799L50.6901 22.4399L60.8801 27.9199C61.6101 28.2899 61.6101 29.3099 60.8801 29.6999Z" fill="#41B0AB"/>
<path d="M58.33 36.5101L53.47 39.1301L36.95 48.0101C36.84 48.0601 36.74 48.1001 36.62 48.1001C36.5 48.1001 36.39 48.0701 36.28 48.0101L29.02 44.1001L32.51 40.6101L34.88 41.8801C35.06 41.9801 35.24 42.0601 35.44 42.1101C35.47 42.1301 35.5 42.1401 35.55 42.1501C35.89 42.3001 36.26 42.3701 36.62 42.3701C36.99 42.3701 37.35 42.3001 37.69 42.1501C37.73 42.1401 37.76 42.1301 37.8 42.1101C38 42.0601 38.18 41.9701 38.37 41.8801L52.3 34.3901L52.82 34.1001L53.34 33.8201L58.33 36.5101Z" fill="#FEEAD7"/>
<path d="M34.8802 41.8801L32.5103 40.6101L32.5502 40.5701L35.3303 42.0701C35.3703 42.0801 35.4002 42.1001 35.4402 42.1201C35.2402 42.0601 35.0602 41.9801 34.8802 41.8801Z" fill="#8AC2E9"/>
<path d="M36.6201 42.3799C36.2601 42.3799 35.89 42.3099 35.55 42.1599C35.9 42.2799 36.2601 42.3299 36.6201 42.3299C36.9801 42.3299 37.3401 42.2799 37.6901 42.1599C37.3601 42.3099 37.0001 42.3799 36.6201 42.3799Z" fill="#8AC2E9"/>
<path d="M60.8801 37.3999L54.41 40.8899L37.8901 49.7599C37.8201 49.7999 37.7501 49.8299 37.6801 49.8599C37.6701 49.8699 37.67 49.8699 37.66 49.8699C37.32 49.9799 36.9701 50.0299 36.6201 50.0299C36.2501 50.0299 35.89 49.9799 35.55 49.8599C35.54 49.8599 35.54 49.8599 35.54 49.8599C35.47 49.8399 35.4101 49.7999 35.3401 49.7599L27.55 45.5799L29.0201 44.0999L36.2801 48.0099C36.3901 48.0599 36.5001 48.0999 36.6201 48.0999C36.7401 48.0999 36.8401 48.0699 36.9501 48.0099L53.47 39.1299L58.3301 36.5099L53.35 33.8299L55.4601 32.6899L60.8801 35.6099C61.6101 35.9999 61.6101 37.0299 60.8801 37.3999Z" fill="#E4A424"/>
<path d="M60.8801 45.1099L37.9001 57.4699C37.5101 57.6899 37.0701 57.7999 36.6301 57.7999C36.1901 57.7999 35.7501 57.6899 35.3401 57.4699L22.54 50.5899L27.5101 45.6199L34.8801 49.5799C35.0801 49.6999 35.3 49.7899 35.54 49.8599C35.54 49.8599 35.54 49.8599 35.55 49.8599C35.89 50.0099 36.2601 50.0899 36.6201 50.0899C36.9801 50.0899 37.33 50.0199 37.66 49.8699C37.67 49.8699 37.6701 49.8699 37.6801 49.8599C37.9101 49.7999 38.1501 49.6999 38.3701 49.5799L54.8701 40.7099L55.4401 40.3999L60.8701 43.3199C61.6101 43.7099 61.6101 44.7299 60.8801 45.1099Z" fill="#653171"/>
<path d="M34.8802 49.5801L27.5103 45.6201L27.5502 45.5801L35.3403 49.7601C35.4103 49.7901 35.4702 49.8301 35.5402 49.8601C35.3102 49.8001 35.0802 49.7001 34.8802 49.5801Z" fill="#8AC2E9"/>
<path d="M36.6201 50.0901C36.2601 50.0901 35.89 50.0101 35.55 49.8601C35.89 49.9801 36.2501 50.0301 36.6201 50.0301C36.9701 50.0301 37.32 49.9801 37.66 49.8701C37.34 50.0201 36.9901 50.0901 36.6201 50.0901Z" fill="#8AC2E9"/>
</svg>
</div><div class="tall-card__no-image--grid--card--footer--date">
Mon, Mar 11, 2019
</div></div>
</div>
</div>
</div></div>
</div>
</main><script type="module">
const sourceSelector = ".solutions-card-grid";
const insertBeforeSelector = ".full-width-layout--content--body > h2:last-of-type";
const sourceNode = document.querySelector(sourceSelector);
const targetNode = document.querySelector(insertBeforeSelector);
const targetParent = targetNode?.parentNode;
targetParent?.insertBefore?.(sourceNode, targetNode);
</script><script>
document.addEventListener("DOMContentLoaded", () => {
/**
* Add pointer cursor to all elements with the given selector.
* This is used as a workaround for the fact that Firefox does
* not support the :has() selector which is used to set the
* cursor on the card container in CSS. So, by including this function
* the `cursor: pointer` style will be set on contained cards which
* do not already have the rule set.
*/
function addPointerCursor(elementSelector) {
const elements = document.querySelectorAll(elementSelector);
elements.forEach((element) => {
if (element.style.cursor !== 'pointer') {
element.style.cursor = 'pointer';
}
});
}
function findParentCardBoundary(element) {
const cardClassName = 'solutions-card-grid--card-wrapper--card';
if (element === null) {
return null;
} else if (element.classList.contains(cardClassName)) {
return element;
} else {
return findParentCardBoundary(element.parentElement);
}
}
function findCardLink(cardElement) {
const link = cardElement.querySelector('a');
return link;
}
function clearFocusClassFromCards(cardSelector) {
const cardList = document.querySelectorAll(cardSelector);
const focusClassName = 'solutions-card-grid--card-wrapper--card__focused';
cardList.forEach((card) => {
if (card.classList.contains(focusClassName)) {
card.classList.remove(focusClassName);
}
});
}
function addFocusClassToCard(cardElement) {
const focusClassName = 'solutions-card-grid--card-wrapper--card__focused';
cardElement?.classList?.add?.(focusClassName);
}
function clearActiveClassFromCards(cardSelector) {
const cardList = document.querySelectorAll(cardSelector);
const activeClassName = 'solutions-card-grid--card-wrapper--card__active';
cardList.forEach((card) => {
if (card.classList.contains(activeClassName)) {
card.classList.remove(activeClassName);
}
});
}
function addActiveClassToCard(cardElement) {
const activeClassName = 'solutions-card-grid--card-wrapper--card__active';
cardElement?.classList?.add?.(activeClassName);
}
function onCardClick(e) {
const card = findParentCardBoundary(e.target);
const cardSelector = '.solutions-card-grid > .solutions-card-grid--card-wrapper .solutions-card-grid--card-wrapper--card__active';
clearActiveClassFromCards(cardSelector);
addActiveClassToCard(card);
if (e.target.tagName === 'A') {
e.stopImmediatePropagation();
return;
}