2011-08-10 50 views
5

我真的学习两个Lucene和ravendb的绳索 - 我有以下的文档中乌鸦 -RavenDB先进Lucene的查询

{ 
    "InternalEvent": { 
    "Desec": "MachineInfo: 1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1, UserInfo: NT AUTHORITY\\LOCAL SERVICE_3, ProcessInfo: \\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe, Pid: 5772, ObjInfo: , EventId: New Process Stopped", 
    "MachineInfo": "1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1", 
    "UserInfo": "NT AUTHORITY\\LOCAL SERVICE_3", 
    "ProcessInfo": "\\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe", 
    "Pid": 5772, 
    "ObjInfo": "", 
    "EventId": "New Process Stopped", 
    "Occured": "2011-08-08T23:25:31.8220000+01:00" 
    }, 
    "Key": "6c4abf6a-156e-4224-8eac-72cde756b3c6" 
} 

我查询数据基地 -

var searchValue = "InternalEvent:Desec:(" + String.Join(" AND ", searchTerms) + ")"; 
var eventEntities = session.Advanced.LuceneQuery<EventCacheEntity>() 
            .WaitForNonStaleResultsAsOfLastWrite() 
            .Skip(0) 
            .Take(_pageLimit) 
            .Where(searchValue); 

搜索对于任何类似于searchTerms的情况,只有像机器那样的一个术语desec。我究竟做错了什么?

我不太了解lucene查询语法中的嵌套字段 - 即Internalevent:Desec ??

回答

4

的语法嵌套字段是InternalEvent.Desec,但我真的不知道你正在尝试与搜索项

+0

我想要做的和到位的默认或搜索的搜索做。 – NiladriBose

+0

我使它工作....嗯一半真的工作。我为Desec字段添加了一个静态索引,并将fieldIndexing改为分析。并开始工作。我唯一的问题是,当我创建索引时使用非默认数据库 - IndexCreation.CreateIndexes(typeof(EventIndex_ByDesc).Assembly,store);该索引将在默认数据库中创建。所以我不得不使用浏览器界面手动创建索引。有没有办法做到这一点编程? – NiladriBose

+0

通过使用 - var store = new DocumentStore {Url =“http:// localhost:8080”,DefaultDatabase =“Universal”}解决了这个问题。然后调用IndexCreation。不知道这是否是预期的方式?例如,是否有API参考.chm。 – NiladriBose