如同往常一样,我谈谈大脑力,大脑力是用来帮助解决卢塞恩问题的斯纳克里用户基础。 NET 问题 我与大家一道工作。 首先,在Lucene和Lucene问题上,我是完全的。 通过网络,并通过在线使用分散的辅导和密码信使,我共同赞同我的情景下的解决办法。
我有以下结构的指数:
---------------------------------------------------------
| id | date | security | text |
---------------------------------------------------------
| 1 | 2011-01-01 | -1-12-4- | some analyzed text here |
---------------------------------------------------------
| 2 | 2011-01-01 | -11-3- | some analyzed text here |
---------------------------------------------------------
| 3 | 2011-01-01 | -1- | some analyzed text here |
---------------------------------------------------------
我需要能够询问案文领域,但把结果限制在具有具体作用使用者身上。 页: 1
我为达到这一目的(在多次前往谷歌之后),即使用“安全领域”和卢塞尼过滤器,以限制以下所列结果:
class SecurityFilter : Lucene.Net.Search.Filter
{
public override System.Collections.BitArray Bits(Lucene.Net.Index.IndexReader indexReader)
{
BitArray bitarray = new BitArray(indexReader.MaxDoc());
for (int i = 0; i < bitarray.Length; i++)
{
if (indexReader.Document(i).Get("security").Contains("-1-"))
{
bitarray.Set(i, true);
}
}
return bitarray;
}
}
......
Lucene.Net.Search.Sort sort = new Lucene.Net.Search.Sort(new Lucene.Net.Search.SortField("date", true));
Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
Lucene.Net.Search.IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher(Lucene.Net.Store.FSDirectory.Open(indexDirectory), true);
Lucene.Net.QueryParsers.QueryParser parser = new Lucene.Net.QueryParsers.QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", analyzer);
Lucene.Net.Search.Query query = parser.Parse("some search phrase");
SecurityFilter filter = new SecurityFilter();
Lucene.Net.Search.Hits hits = searcher.Search(query, filter, sort);
这一工作按预期进行,只有交回文件的时间为1和3。 问题是,在很大程度上,这一进程进展缓慢。
最后,我的问题...... 是否有任何人ti想如何加快解决,或找到比我在这里提出的解决办法更为有效的替代解决办法?