aşağıdaki gibi bir belge yapıya sahip nesneler.
Zorunlu Beceri bir beceri (string) ve bir uzmanlıktan (enum) oluşur.RavenDb statik İndeksi:</p> <p><code>Employer => Positions => RequiredSkills</code></p> <p>İşveren <br> Pozisyonlar RequiredSkill bir koleksiyona sahip Pozisyon bir koleksiyona sahiptir: çocuk koleksiyonu sorgu
Dinamik bir dizin kullanırsam, şirkete iyi gelir, ancak MVC görünüm modellerini UI'ye döndürmek için bir dizin kullanmak istiyorum.
Gerçekten çok yeni Raven için çok aptalca/gereksiz bir şey yapmaktan dolayı özür dilerim! Ancak
public class PositionSearch : AbstractIndexCreationTask<Employer>
{
public PositionSearch()
{
Map = employers =>
from employer in employers
from position in employer.Positions
select new
{
EmployerId = employer.Id,
EmployerName = employer.Name,
PositionId = position.Id,
PositionTitle = position.Title,
position.Location,
position.Description,
RequiredSkills = position.RequiredSkills
};
StoreAllFields(FieldStorage.Yes);
Index("RequiredSkills_Skill", FieldIndexing.Analyzed);
}
}
aşağıdaki sorguyu çalıştırmayı:
var results = session.Query<PositionSearchResultModel, PositionSearch>()
.Customize(x => x.WaitForNonStaleResults())
.Where(x=>x.RequiredSkills.Any(y=>y.Skill == "SkillName"))
.ProjectFromIndexFieldsInto<PositionSearchResultModel>()
.ToList();
aşağıdaki hatayı alıyorum:
System.ArgumentException:
The field 'RequiredSkills_Skill' is not indexed,
cannot query on fields that are not indexed
Can
aşağıdaki eşleme var Herkes yanlış yaptığımı görüyor ya da benim için başka bir yaklaşım öneriyor mu?
sayesinde
James
GÜNCELLEME benim bakış modeli - Teşekkürler:
public class PositionSearchResultModel
{
public PositionSearchResultModel()
{
RequiredSkills = new HashSet<SkillProficiency>();
}
public string EmployerId { get; set; }
public string EmployerName { get; set; }
public string PositionId { get; set; }
public string PositionTitle { get; set; }
public string Location { get; set; }
public string Description { get; set; }
public ICollection<SkillProficiency> RequiredSkills { get; set; }
}
Dizin girişlerini dizin sonuçlarıyla karıştırıyorsunuz. Lütfen "PositionSearchResultModel" sınıfınızı sağlayın ve eksiksiz bir çözümle cevaplayacağım. Teşekkürler. –
Ekleme modelim eklendi. – Jamez
Analiz edilen alanı işaretlemeye çalıştığınızı görüyorum. Yetenek adına tam bir eşleşme mi istiyorsun? Veya analiz edilmiş bir arama yapmak mı istiyorsunuz? –