RavenDB高级Lucene查询
我真的在学习lucene和ravendb的诀窍——我有以下Raven文档-RavenDB高级Lucene查询,ravendb,Ravendb,我真的在学习lucene和ravendb的诀窍——我有以下Raven文档- { "InternalEvent": { "Desec": "MachineInfo: 1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1, UserInfo: NT AUTHORITY\\LOCAL SERVICE_3, ProcessInfo: \\Device\\HarddiskVolume1\\Windows\\System32\\ta
{
"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);
var searchValue=“InternalEvent:Desec:(“+String.Join”(“AND”,searchTerms)+”);
var eventEntities=session.Advanced.LuceneQuery()
.WaitForNonSalesultsAsoflastWrite()
.Skip(0)
.Take(_pageLimit)
.其中(搜索值);
搜索任何类似if searchTerms的内容时,只有一个类似于机器的术语,该术语明确位于desec字段中。我做错了什么
我不太确定lucene查询语法中的嵌套字段-即Internalevent:Desec???嵌套字段的语法是
Internalevent.Desec
,但我不确定您试图用搜索词做什么我想用and搜索代替默认或搜索。我让它工作了。。。。嗯,真的有一半工作。我为字段Desec添加了一个静态索引,并将字段索引更改为“分析”。它开始工作了。我唯一的问题是,当我使用-IndexCreation.CreateIndexes(typeof(EventIndex_ByDesc.Assembly,store)创建索引时,我使用的是非默认数据库;索引在默认数据库中创建。因此,我必须使用浏览器界面手动创建索引。有没有一种方法可以通过编程实现?通过使用-var store=new DocumentStore{Url=”“,DefaultDatabase=“Universal”}解决了这个问题;然后调用IndexCreation。不知道这是否是我们想要的方式?是否有API引用。例如chm。感谢嵌套字段语法。。。这对我来说太神奇了。