Выполните поиск в лазурных файлах внутри документов

У меня есть учетная запись в Azure, а в ней — учетная запись хранения. Я хотел бы выполнить поиск по документам, которые находятся внутри папок в этом хранилище. Я уже видел, что в blob это можно сделать, но в blob невозможно создать папки или какую-либо структуру. Короче говоря, как я могу выполнять поиск в файлах в хранилище Azure?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
50
3

Ответы 3

Поиск Azure был разработан именно для этого.

Вы указываете ему свое хранилище BLOB-объектов, позволяете ему индексировать ваши файлы, а затем используете API для опроса файлов.

Что касается папок, в Azure Storage 2-го поколения у вас могут быть иерархические пространства имен, имитирующие папки. В качестве альтернативы вы можете использовать хранилище Azure Data Lake, которое имеет концепцию папок, однако первое предпочтительнее.

Краткое руководство по поиску Azure можно найти здесь, а также есть пробный уровень бесплатного пользования (ограничено 3 индексами и 10 000 документов).

Привет, Мюррей. Не могли бы вы привести пример в Java, как это сделать?

Francisco Javier Bonillo Ponce 08.02.2019 10:47

На самом деле это не имеет ничего общего с java. Существует конечная точка REST API, которую вы используете после индексации файлов. Вы можете использовать curl, Java C#, Pyton и т. д. См.: docs.microsoft.com/en-us/rest/api/searchservice

Murray Foxcroft 08.02.2019 13:44

Привет, Мюррей, я пробовал это несколькими способами, и было невозможно создать жизнеспособный код для доступа к json, который должен возвращать поиск, у вас есть пример того, как подключиться, независимо от языка?

Francisco Javier Bonillo Ponce 11.02.2019 16:17

Вот формальный пример Java docs.microsoft.com/en-us/azure/search/search-get-started-jav‌​a

Murray Foxcroft 11.02.2019 17:19

Как уже упоминал Мюррей, поиск Azure — это именно то, что вам нужно.

Вы можете найти хороший учебник здесь: Пошаговое руководство по коду поиска Azure.

Привет, Axxeption, не могли бы вы опубликовать пример того, что я могу сделать для этих поисков?

Francisco Javier Bonillo Ponce 07.02.2019 11:20

Привет! Вы имеете в виду работающий пример в качестве демонстрации?

Axxeption 08.02.2019 12:50

Ну, решил.

    URL url =SearchServiceHelper.getSearchURL( URLEncoder.encode("searchstring", java.nio.charset.StandardCharsets.UTF_8.toString()));

            HttpsURLConnection connection = SearchServiceHelper.getHttpURLConnection(url, "GET", "KEY");
            JsonReader jsonReader = Json.createReader(connection.getInputStream());
            JsonObject jsonObject = jsonReader.readObject();
            JsonArray jsonArray = jsonObject.getJsonArray("value");
            jsonReader.close();
            System.out.println(connection.getResponseMessage());
            System.out.println(connection.getResponseCode());
            System.out.println(url);

            JsonArray jsonResult = jsonArray;
            List<Structure> docList = jsonToDocument(jsonResult);

-------------------
Where :
private static final String _searchURL = "https://%s.search.windows.net/indexes/%s/docs?api-version=%s&search=%s&searchMode=all";
public static URL getSearchURL( String query) throws MalformedURLException
    {
        Formatter strFormatter = new Formatter();
        strFormatter.format(_searchURL, "searchservicenameonly", "index", "api-version", query);
        String url = strFormatter.out().toString();
        strFormatter.close();

        return new URL(url);
    }
---------------------------------------------------------------------
public static HttpsURLConnection getHttpURLConnection(URL url, String method, String apiKey) throws IOException
    {
        HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
        connection.setRequestMethod(method);
        connection.setRequestProperty("Content-Type", "application/json");
        connection.setRequestProperty("api-key", apiKey);

        return connection;
    }

Вы должны создать структуру для сохранения данных, которые возвращает поиск.

Другие вопросы по теме