我使用Sitecore的,并有多重表场,我想利用Lucene搜索上。我遇到的问题是该字段是实际值的管道分隔列表,并且此列表中的项目数量可能介于0和无限(理论上讲,实际上可能只有一两种可能性)之间。我无法成功地使用通配符查询,并且我无法想象如何将此字段分成多个字段,因为列表中的项目数量未知。Lucene.Net搜索列表
3
A
回答
5
我已经使用了类似的技术在搜索到一个类别层次结构中进行搜索。我使用以下方法构建查询,将艰苦工作留给了QueryParser类。我通常将这个查询添加到一个布尔查询。
的QueryParser的通常做了伟大的工作,我经常用它构建了我的大部分Lucene的查询 - 这似乎是建立一个特定查询了很多的时间时,做一个更好的工作比我!
你可以做的另一件事是使用的QueryParser来构建它,然后设置一个断点,看看如何查询已被创建,然后用特定的查询类型的更新代码。
private Query GetQuery(Sitecore.Data.ID id)
{
string categoryId = id.Guid.ToString(); //turn ID to string
StandardAnalyzer analyzer = new StandardAnalyzer(); //use standard analyzer
QueryParser parser = new QueryParser("categories", analyzer); //search inside category field
Query query = parser.Parse(categoryId); //get the query
return query;
}
+0
我想你的方法如何使用的QueryParser为我所有的领域,但查询竟然是可笑缓慢,当我试图用这个查询两个外卡查询,添加到我的布尔查询。 QueryParser比手写查询慢吗? – Gabbar 2012-11-08 16:14:03
相关问题
- 1. Lucene.net proximity搜索
- 2. Lucene.Net并行搜索
- 3. Sitecore TreelistEx搜索Lucene.NET
- 4. Lucene.net搜索引擎
- 5. Lucene.NET分面搜索
- 6. Lucene.NET分面搜索
- 7. Lucene.NET搜索索引方法
- 8. 列使用Lucene.NET搜索时优先
- 9. Lucene.Net多行正则表达式搜索
- 10. lucene.net - 搜索词太短?
- 11. NHibernate搜索Lucene.NET SearchFactory为null
- 12. Lucene.NET搜索过滤器
- 13. Lucene.net模糊短语搜索
- 14. 缓存Lucene.net搜索结果
- 15. Lucene.net不能搜索“.net”
- 16. Lucene.net文件夹搜索
- 17. Lucene.Net TermQuery通配符搜索
- 18. Lucene.Net搜索像A071,A072,A073
- 19. Lucene.net多字段搜索
- 20. 慢Lucene.Net搜索性能
- 21. Lucene.net搜索和下划线
- 22. Proximity搜索示例Lucene.Net
- 23. 使用Lucene.Net搜索策略
- 24. Lucene.Net搜索用下划线
- 25. 在Lucene.NET中使用多列表字段搜索
- 26. 搜索列表
- 27. 在Lucene.Net中计数搜索结果
- 28. Lucene.Net。如何在HTML实体中搜索
- 29. Lucene.NET更新不删除搜索条件
- 30. Lucene.NET&Facete搜索解决方案
您能否提供一个问题的例子?你有一个可以有多个(许多)值的领域,还是比这更复杂? – HakonB 2009-12-16 20:29:18
当然,例如,我试图搜索的字段包含值: {303FF303-E8A7-456B-8861-4D7B9CE92D88} | {F88DF50F-928B-41AC-9280-3964AEFA530E} | {B0A7516B-1C97-4134 -8E06-73433E3AE0B7} 而在我的应用程序需要抢在这个字段中的值{303FF303-E8A7-456B-8861-4D7B9CE92D88}所有文件。 – Kyle 2009-12-17 14:43:42