Сделайте поиск в лазурных файлах внутри документов - PullRequest
0 голосов
/ 07 февраля 2019

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

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Как уже упоминал Мюррей, Azure Search - это именно то, что вы ищете.

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

0 голосов
/ 12 февраля 2019

Хорошо, решено.

    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;
    }

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

0 голосов
/ 07 февраля 2019

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...