score:3

Accepted answer
public class clips_bystatechange : abstractindexcreationtask<clip>
{
  public clips_bystatechange()
  {
    map = clips =>
          from clip in clips
          select new {
              oldstate = clip.statechanges
                  .select(x => x.oldstate + "|" + x.changedat.tostring("o")),
              newstate = clip.statechanges
                  .select(x => x.newstate + "|" + x.changedat.tostring("o"))
          };
  }
}

var results = session.advanced.lucenequery<clip, clips_bystatechange>()
    .where(string.format(
        "newstate: {{{0}|* to {0}|{1}}} and -oldstate: {{{0}|* to {0}|{2}}}",
        state, since.tostring("o"), now.tostring("o")));

Related Query