2011-08-10 70 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