在E-Bay网站上,您可以搜索e。 G。主色为银色的手镯(见下面的截图)。
是否可以通过编程方式(通过eBay Search API)运行此类查询(找到带有主色银的最新手镯)?如果是 - 怎么样?
我看了findItemsAdvanced,但没有找到任何颜色搜索的参考。
答案 0 :(得分:2)
您可能想要使用AspectFilters。可以在上一个查询中找到该输入(如文档中所述。请参阅aspectHistogrammContainer)
答案 1 :(得分:1)
使用Finding API优化搜索是通过 Aspect Filters 完成的,defined in the documentation为:
方面是众所周知的,标准化的物品特征。对于 例如,"屏幕尺寸," "处理器类型,"和#34;处理器速度"可以 是笔记本电脑的一部分。各方面的不同可能会有所不同 项目。例如,笔记本电脑的各个方面与那些不同 女装连衣裙(女装连衣裙的方面可能包括"袖子 风格," "着装长度,"和"尺寸")。
执行搜索是一个两步过程。
以下示例使用易趣提供的Finding Kit作为其Java SDK的一部分。
第一个示例显示了如何获取可用的方面。这是通过getHistograms操作实现的。在本例中,我们将使用 Jewelry&手表>时尚饰品>戒指(67681)可在美国eBay网站上找到。
import java.util.List;
import com.ebay.services.client.ClientConfig;
import com.ebay.services.client.FindingServiceClientFactory;
import com.ebay.services.finding.*;
public class GetHistograms {
public static void main(String[] args) {
try {
ClientConfig config = new ClientConfig();
config.setApplicationId("<YOUR EBAY APP ID>");
FindingServicePortType serviceClient = FindingServiceClientFactory.getServiceClient(config);
GetHistogramsRequest request = new GetHistogramsRequest();
request.setCategoryId("67681");
GetHistogramsResponse result = serviceClient.getHistograms(request);
AspectHistogramContainer aspectHistogramContainer = result.getAspectHistogramContainer();
List<Aspect> aspects = aspectHistogramContainer.getAspect();
for(Aspect aspect : aspects) {
System.out.println("* " + aspect.getName() + " *");
List<AspectValueHistogram> values = aspect.getValueHistogram();
for(AspectValueHistogram value : values) {
System.out.println(value.getValueName());
}
}
} catch (Exception ex) {
}
}
}
每个类别可以有多个方面,包括名称,例如颜色,以及多个值,例如红色,白色,< EM>蓝。此代码生成的输出示例如下所示。
从 getHistograms 返回的名称和值现在可以用作findItemsAdvanced操作中的过滤器。对于第二个示例,我们将使用 Brand 和 Main Color 方面。此示例也使用与第一个相同的类别。
import java.util.List;
import com.ebay.services.client.ClientConfig;
import com.ebay.services.client.FindingServiceClientFactory;
import com.ebay.services.finding.*;
public class FindItem {
public static void main(String[] args) {
try {
ClientConfig config = new ClientConfig();
config.setApplicationId("<YOUR EBAY APP ID>");
FindingServicePortType serviceClient = FindingServiceClientFactory.getServiceClient(config);
FindItemsAdvancedRequest request = new FindItemsAdvancedRequest();
request.getCategoryId().add("67681");
AspectFilter aspectFilter = new AspectFilter();
aspectFilter.setAspectName("Brand");
aspectFilter.getAspectValueName().add("Paula Abdul");
aspectFilter.getAspectValueName().add("Tiffany");
aspectFilter.getAspectValueName().add("Tommy Hilfiger");
request.getAspectFilter().add(aspectFilter);
aspectFilter = new AspectFilter();
aspectFilter.setAspectName("Main Color");
aspectFilter.getAspectValueName().add("Gold");
aspectFilter.getAspectValueName().add("Silver");
request.getAspectFilter().add(aspectFilter);
PaginationInput pi = new PaginationInput();
pi.setEntriesPerPage(2); request.setPaginationInput(pi);
FindItemsAdvancedResponse result = serviceClient.findItemsAdvanced(request);
System.out.println("Found " + result.getSearchResult().getCount() + " items." );
List<SearchItem> items = result.getSearchResult().getItem();
for(SearchItem item : items) {
System.out.println(item.getTitle());
}
} catch (Exception ex) {
}
}
}
答案 2 :(得分:0)
VariationType似乎能够做到这一点。