Refining поиски с Finding API осуществляется через Аспект Фильтры которые defined in the documentation как:
аспекты хорошо известны, стандартизированные характеристики элемента. Например, в примере «Размер экрана», «Тип процессора» и «Скорость процессора» могут быть аспектами портативных ПК. Аспекты могут варьироваться для разных видов предметов . Например, аспекты портативных ПК отличаются от тех, что женских платьев (аспекты для женских платьев могут включать в себя «Рукав Стиль», «Длина платья» и «Размер»).
Выполнение поиска - это двухэтапный процесс.
- Определите, какие аспекты доступны для данной категории вы ищете в.
- Выберите, какие аспекты вы будете использовать и интегрировать их в качестве фильтров в запросе поиска.
В следующих примерах используется Finding Kit, которые eBay предоставляют как часть их Java SDK.
Первый пример показывает, как получить доступные аспекты. Это достигается с помощью операции getHistograms. В этом примере мы будем использовать категорию Ювелирные изделия & Часы> Модные драгоценности> Кольца (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) {
}
}
}
Каждая категория может иметь несколько аспектов, которые состоят из названия, такие как Color и несколько значений, таких как Red, Белый, Синий. Пример вывода, созданного этим кодом, показан ниже.
- металла Чистота
- 10k
- 14k
- 18k
- Главный камень
- Нет Камень
- Abalone
- Агатовые
- Основного цвета
- Аква
- Черного
- Синих
Имен и значение, возвращаемые из getHistograms теперь может быть использован в качестве фильтров в findItemsAdvanced операции. Во втором примере мы будем использовать аспекты Brand и Основные цвета. Этот пример также использует ту же категорию, что и первая.
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) {
}
}
}
Что вы пробовали до сих пор на Java и что такое идентификатор категории eBay, который вы ищете? –
@ DavidT.Sadler В настоящее время я могу запустить запрос, который дает мне X элементов определенной категории. Особые категории, которые меня интересуют, - это e. г. браслеты или серьги. –