在RavenDB中搜索查询

时间:2014-07-08 06:28:29

标签: linq ravendb

我想了解以下条件的搜索查询。我创建了一个名为MeetingEventIndex的索引,如下所示:

public class MeetingEventIndex : AbstractIndexCreationTask<mngtMeetingEvent>
 {
  public MeetingEventIndex ()
  {
     Map = docs => from d in docs select new {d.meetingroomid, d.text, d.details};

     Index(x=>x.meetingroomid, FieldIndexing.Analyzed);
     Index(x=>x.text, FieldIndexing.Analyzed);
     Index(x=>x.details, FieldIndexing.Analyzed);
  }
 }

我正在尝试创建一个搜索查询,如下所示“在文字或详细信息字段中搜索字词,会议室ID == 123

docsession.Query<mngtMeetingEvent, MeetingEventIndex>()
.Search(x=>x.text , search)
.Search(x=>x.details, search. options: SearchOptions.Or)
.Search(x=>x.meetingroomid, "123", option.SearchOptions.And)
.ToList()

但这并没有返回任何结果。

基本上我正在寻找((在文本字段中搜索项目||详细信息字段中的searchterm)和会议室文件字段中的mrcode。

请帮忙。

1 个答案:

答案 0 :(得分:0)

您的查询可能更容易表达为LuceneQuery,而不是:

docsession.Advanced..LuceneQuery<mngtMeetingEvent, MeetingEventIndex>()
   .OpenSubClause()
       .Search("text", search)
       .OrElse()
       .Search("details", search)
   .CloseSubClause()
   .AndAlso()
   .WhereEquals("meetingroomid", "123")
   .ToList();