그래서 하늘 검색 주위에 C# nuget 래퍼를 사용하고 있습니다.하늘빛 검색 - 검색어
public class ProductDocument
{
[System.ComponentModel.DataAnnotations.Key]
public string Key { get; set; }
[IsSearchable]
public string Sku { get; set; }
[IsSearchable]
public string Name { get; set; }
[IsSearchable]
public string FullDescription { get; set; }
[IsSearchable]
public List<CustomerSkuDocument> CustomerSkus { get; set; }
}
public class CustomerSkuDocument
{
[IsSearchable]
public int AccountId { get; set; }
[IsSearchable]
public string Sku { get; set; }
}
예 데이터는 다음과 같습니다 :
new Product() { Key= 100,Name="Nail 101",Sku = "CCCCCCCC", CustomerSkus = new List<ProductCustomerSku>()
{
new ProductCustomerSku() {AccountId = 222, CustomerSku = "BBBB"},
new ProductCustomerSku() {AccountId = 333, CustomerSku = "EEEEEEE"}
}
그래서 문제가 CustomerSkuDocument 주위에 내 문제는 내가 제품의 인덱스가 있습니다. 검색 할 때 AccountId는 검색 용어와 함께 전달해야하지만 AccountId는 ProductCustomerSkus를 검색 할 때만 사용됩니다.
기본적으로 계정에는 고객 SKU가 다를 수 있지만 해당 계정에만 연결되어 있으므로 계정마다 별도의 색인을 원하지 않습니다.
그래서 내 전화는/AccountId = 222 & term = BBBB와 일치하는 것을 찾을 수 있습니다.
그러나/AccountId = 333 & term = BBBB는 일치하는 항목을 찾지 못합니다.
그래서 나는 그것을 좋아 호출 해요 : 용어는 일반적인 검색어입니다 SearchParameters sp = new SearchParameters();
sp.SearchMode = SearchMode.Any;
sp.QueryType = QueryType.Full;
DocumentSearchResult<ProductDocument> results =
productIndexClient.Documents.Search<ProductDocument>(term, sp);
은 계정 아이디를 추가로 그것을 시도했지만 작동하지 않습니다.