我有一个天蓝色的帐户,在这个帐户中有一个存储帐户。 我想在此存储中的文件夹内的文档中进行搜索。 我已经看到可以在blob中完成此操作,但是在blob中无法创建文件夹或任何结构。 简而言之,如何在azure存储中的文件中进行搜索?
答案 0 :(得分:1)
Azure Search被设计为完全做到这一点。
您将其指向您的Blob存储,让它为文件建立索引,然后使用API来查询文件。
就文件夹而言,在Azure Storage Gen 2中,您可以具有模仿文件夹的分层名称空间。或者,您可以使用Azure Data Lake存储,该存储具有文件夹的概念,但是首选文件夹。
可以找到here进行Azure搜索的快速入门,并且可以试用一个免费层(仅限3个索引和10,000个文档)。
答案 1 :(得分:0)
正如Murray所提到的,Azure搜索正是您要寻找的。
您可以在这里找到一个不错的教程:Azure Search Code walkthrough。
答案 2 :(得分:0)
好,解决了。
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;
}
您必须创建一个结构来保存搜索返回的数据。