Beim letzten Mal habe ich ein Bild mit der Importfunktion der Bildsuche registriert. Mit der Importfunktion können nur die Parameter für V1 registriert werden, und die für V2 neu hinzugefügten Parameter können nicht registriert werden ~~. ** Es ist fertig. Es tut mir Leid. ** ** **
Daher denke ich, dass es besser ist, sich mithilfe der API zu registrieren, um Daten in die Bildsuche einzugeben. Bei der Registrierung von Daten sind einige Punkte zu beachten, daher möchte ich diese Punkte beschreiben.
Dieses Mal werden wir uns mit dem Java SDK registrieren. Informationen zum Aufbau der Umgebung finden Sie unter [Suchen].
SimpleAdd.java
package imagesearch.sample;
import java.io.InputStream;
import java.util.Base64;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.imagesearch.model.v20190325.AddImageRequest;
import com.aliyuncs.imagesearch.model.v20190325.AddImageResponse;
import com.aliyuncs.imagesearch.model.v20190325.AddImageResponse.PicInfo;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class SimpleAdd {
/** AccessKey */
private static final String ACCESS_KEY = "XXXXXXXXXXXXXxxx";
/** SeacretKey */
private static final String KEY_SEACRET = "YYYYYYYYYYYYYYY";
public static void main(String[] args) throws Exception {
//Initialisieren(Fall der Region Tokio
DefaultProfile.addEndpoint("ap-northeast-1", "ImageSearch", "imagesearch.ap-northeast-1.aliyuncs.com");
IClientProfile profile = DefaultProfile.getProfile("ap-northeast-1", ACCESS_KEY, KEY_SEACRET);
IAcsClient client = new DefaultAcsClient(profile);
AddImageRequest request = new AddImageRequest();
request.setInstanceName("itemsearch");
request.setProductId("id-0001");
request.setPicName("item0001");
request.setCategoryId(9);
request.setCrop(true);
request.setIntAttr(1000);
request.setStrAttr("Möbel: Stuhl");
request.setCustomContent("{'sample': 'Stichprobe'}");
ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream is = loader.getResourceAsStream("item01.jpg ");
String image = Base64.getEncoder().encodeToString(is.readAllBytes());
request.setPicContent(image);
AddImageResponse response = client.getAcsResponse(request);
// Debug
boolean checkShowJsonItemName = response.checkShowJsonItemName();
Integer code = response.getCode();
String message = response.getMessage();
String requestId = response.getRequestId();
Boolean success = response.getSuccess();
PicInfo picInfo = response.getPicInfo();
Integer categoryId = picInfo.getCategoryId();
String region = picInfo.getRegion();
System.out.printf("requestId:%s%nmessage:%s%ncheckShowJsonItemName:%s%ncode:%s%nsuccess:%s%n", requestId, message, checkShowJsonItemName, code, success);
System.out.println("PicInfo");
System.out.printf("\tcategoryId:%s%n\tregion:%s%n", categoryId, region);
}
}
requestId:F009FFA3-D94C-4C95-A8D1-957F7EE06591
message:success
checkShowJsonItemName:false
code:0
success:true
PicInfo
categoryId:9
region:140,474,36,578
ProductId
request.setProductId(productId);
Eingabe erforderlich. Unterstützt Produkt-IDs mit bis zu 512 Zeichen. Sie können mehrere Bilder in ein Produkt aufnehmen.
PicName
request.setPicName(picName);
Eingabe erforderlich. Unterstützt Bildnamen mit bis zu 512 Zeichen.
Durch die Registrierung mehrerer Bilder für ein Produkt können Sie die Genauigkeit der Suche verbessern. Ich denke, es ist gut, einige Musterbilder wie Frontbild und Diagonalbild zu registrieren.
CategoryId
request.setCategoryId(9);
Die Eingabe ist optional. Bildkategorie.
Konfigurierbare Kategorien
Kategorie ID | Erläuterung |
---|---|
0 | Spitzen |
1 | Kleid |
2 | Böden |
3 | Tasche |
4 | Schuhe |
5 | Zubehör |
6 | Snack |
7 | Bilden |
8 | Flasche trinken |
9 | Möbel |
20 | Spielzeug |
21 | Unterwäsche |
22 | Digitale Geräte |
88888888 | Andere |
PicContent
request.setPicContent(encodePicContent);
Eingabe erforderlich. Base64-codierter Bildinhalt. Unterstützt Bilder mit einer Größe von bis zu 2 MB und einer Sendelatenz von 5 Sekunden. Derzeit werden nur JPG- und PNG-Bildformate unterstützt. Sowohl vertikale als auch horizontale Pixel müssen zwischen 200 und 1024 liegen, und das Bild darf keine Rotationsinformationen enthalten.
Im Produktionsbetrieb ist es möglicherweise besser, die Konvertierungslogik vor der Registrierung einzuschließen. Außerdem weiß ich nicht, was es bedeutet, hier eine Wartezeit von 5 Sekunden für die Übertragung zu unterstützen. .. .. was willst du. Wenn jemand weiß, lassen Sie es mich bitte wissen. (Ich werde es bald in der Quelle überprüfen ...)
Crop
request.setCrop(true);
Die Eingabe ist optional. Unabhängig davon, ob eine Subjekterkennung erforderlich ist, ist die Standardeinstellung "true".
Bei der Produktsuche denke ich, dass wahr in Ordnung ist. Wenn Sie beispielsweise nach der Atmosphäre eines Raums suchen möchten, können Sie sich mit false registrieren.
Region
request.setRegion("280,486,232,351");
Die Eingabe ist optional. Der Motivbereich des Bildes, ausgedrückt im Format x1, x2, y1, y2, x1, y1, ist der obere linke Punkt, x2, y2 ist der untere rechte Punkt. Wenn der Benutzer eine Region festlegt, wird die Suche in dieser Region unabhängig vom Wert des Crop-Parameters durchgeführt.
Wenn das zu registrierende Bild mehrere Objekte enthält (z. B. wenn versucht wird, einen Stuhl zu registrieren und ein Vorhang oder Tisch ebenfalls angezeigt wird), stellen Sie die Positionsinformationen des Zielobjekts ein, um die Genauigkeit der Suche zu verbessern. Sie können die Genauigkeit der Suche verbessern.
IntAttr
request.setIntAttr(intAttr);
Die Eingabe ist optional. Dieses Integer-Attribut, das beim Filtern zum Filtern verwendet werden kann, wird bei der Suche zurückgegeben. Sie können beispielsweise IntAttr für jedes Site-Image / Benutzer-Image festlegen und diese filtern, wenn sie durchsucht werden.
Parameter, die für Filter verwendet werden können, die aus V2 hinzugefügt wurden. Es ist jetzt möglich, in Kombination mit StrAttr zu filtern, was später beschrieben wird. Mithilfe eines Filters können Sie Daten aus der Bildsuche abrufen, die den Filterbedingungen entsprechen. Es ist praktisch, weil ich nach dem Abrufen der Daten filtern musste. Hoffentlich wäre es hilfreich, mehrere Werte einstellen zu können. .. .. Die Filterbedingungen sind ">,> =, <, <=, =". Wenn Sie den Preis für das Produkt festlegen, können Sie meiner Meinung nach die Produkte von 10.000 bis 30.000 Yen eingrenzen, die auf EC-Websites üblich sind.
StrAttr
request.setStrAttr(strAttr);
Die Eingabe ist optional. Unterstützt Zeichenfolgentypattribute mit bis zu 128 Zeichen. Es kann zum Filtern bei der Suche verwendet werden. Dieses Feld wird bei der Suche zurückgegeben.
Hier können Sie eine Zeichenfolge festlegen und filtern. Die Filterbedingung, die verwendet werden kann, ist "=,! =". Darüber hinaus ist es ein Filter mit einer genauen Übereinstimmung. Es ist ziemlich unpraktisch. .. .. Eine realistische Möglichkeit besteht darin, Parameter in Bits umzuwandeln und zu setzen. .. .. Es ist immer noch schwer zu bedienen. Es wäre sehr hilfreich, wenn Sie mehrere Parameter festlegen und reguläre Ausdrücke verwenden könnten.
CustomContent
request.setCustomContent("Benutzerdefiniert");
Die Eingabe ist optional. Unterstützt benutzerdefinierte Inhalte mit bis zu 4096 Zeichen. Dieses Feld wird bei der Suche zurückgegeben. Sie können beispielsweise Text wie eine Bildbeschreibung hinzufügen.
Sie können die Verwendung vereinfachen, indem Sie JSON usw. festlegen.
Systemlimits-Benutzerhandbuch | Alibaba Cloud Document Center https://jp.alibabacloud.com/help/doc-detail/74408.htm
Hier sind einige Dinge zu beachten, die Sie bei der Registrierung beachten sollten.
Folgende Punkte sind zu beachten
Recommended Posts