Pokud je to skutečně zapotřebí (na serveru asi ne, ale když se to pouští "u sebe", tak ano), můžete si upravit skript na přidávání souborů například takto:
#!/bin/sh
coded=`cat $1 | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
path=`readlink -e $1`
json="{\"product\":\"$2\",\"version\":\"$3\",\"url\":\"$4\",\"file\":\"${coded}\",\"path\":\"${path}\"}"
echo "$json" > file.json
curl -X POST "localhost:9200/docs3/document/" -d @file.json
Je tam navíc naplňována proměnná ${path} (používám readlink, protože je asi nainstalován všude, kdyžtak mě prosím opravte)
JSON s dotazem se nepatrně rozšíří:
{
"fields" : ["product", "version", "url", "file.content_type", "file.title", "file.date", "file.content_length", "path"],
"query" : {
"match" : {
"file.content" : "requires"
}
},
"highlight" : {
"fields" : {
"file.content" : {}
}
}
}
A ve výsledku to může vypadat takto (jen část výsledku):
"fields" : {
"file.content_length" : [ "58590" ],
"product" : [ "RHDTS" ],
"file.content_type" : [ "application/xhtml+xml; charset=UTF-8" ],
"file.title" : [ "3.1 Release Notes" ],
"path" : [ "/home/tester/elasticsearch-2.4.0/es/RHDTS_ReleaseNotes.html" ],
"url" : [ "http:/www.root.cz" ],
"version" : [ "2.1" ]
},
Aha aha. Toz to je jednoduche.
Zase mi neco uteklo... "na serveru to neni potreba" - Jakto? Prece pokud mi ten nalezeny dokument nemuzes vratit, tak co?
At to nevypada ze jen prudim. Paradni uvod do elasticu a spousta muziky za fakt rozumnou cenu, ale prave neschopnost elasticu pracovat poradne s ulozistem soboru me dycky srasne stvala. Na druhou stranu "schopnost" tohoto by byla zabijakem toho paradniho restapi...
Na screenshotu vysledku hledani je odkaz(?) na ten dokument. Jak se tam objevil? uvazime li ze puvodni demicko neuchovava cestu...
Ajo to ja jsem to mozna dobre nepopsal. "Tady" se totiz dokumentace buildi na Jenkinsu, takze namisto cesty na souborovem systemu ukladam URL do fieldu _url_, ktery v puvodnim mapovani je. Takze lidem, co si pousti ten web klient (resp. jeho sofistikovanejsi podobu s dalsimi filtry, nekdo chce videt zdrojaky, nekdo az vysledny dokument) se do linku vrazi odkaz na vygenerovany HTML v artefaktu popr. na zdrojak ve workspacu, on jim uz Jenkins obsah naserviruje a je to i bezpecnejsi (aspon teoreticky, protoze Jenkins si zajistuje, ze nesahne nekam kam nema).