figure creating an elasticsearch index with python-elasticsearch needs to expect although this is true for simple casesyou can' avoid having schema in the long runso let' create oneas shown in the following listing listing adding mapping to the document type diseasemapping 'properties''name'{'type''string'}'title'{'type''string'}'fulltext'{'type''string'client indices put_mapping(index=indexnamedoc_type='diseases',body=diseasemapping defining mapping and attributing it to the disease doc type the "diseasesdoc type is updated with mapping now we define the data it should expect this way you tell elasticsearch that your index will have document type called "disease"and you supply it with the field type for each of the fields you have three fields in disease documentnametitleand fulltextall of them of type string if you hadn' supplied the mappingelasticsearch would have guessed their types by looking at the first entry it received if it didn' recognize the field to be booleandoublefloatlongintegeror dateit would set it to string in this caseyou didn' need to manually specify the mapping now let' move on to wikipedia the first thing you want to do is fetch the list of diseases pagebecause this is your entry point for further explorationdl wikipedia page("lists_of_diseases"you now have your first pagebut you're more interested in the listing pages because they contain links to the diseases check out the linksdl links the list of diseases page comes with more links than you'll use figure shows the alphabetical lists starting at the sixteenth link dl wikipedia page("lists_of_diseases"dl links