15
A
回答
5
如果您知道存储在您的字段中的数据的类型,则可以尝试范围查询。根据示例,如果您的字段包含字符串数据,那么像field:[a* TO z*]
这样的查询将返回该字段中存在字符串值的所有文档。
3
我已经做了一些试验,似乎实现这一目标的最简单的方法是创建一个QueryParser
并调用SetAllowLeadingWildcard(true)
和搜索field:*
像这样:
var qp = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, field, analyzer);
qp.SetAllowLeadingWildcard(true);
var query = qp.Parse("*"));
(请注意我设置默认字段的QueryParser
到field
在其构造函数中,因此在Parse()
中仅搜索"*"
)。
我不能保证这种方法的效率有多高是其它方法相比,但作为我能找到的最简单的方法,我希望它至少与field:[* TO *]
高效,而且避免了不得不做的hackish之类的东西field:[0* TO z*]
,这可能不会考虑所有可能的值,例如以非字母数字字符开头的值。
1
另一种解决方案是使用ConstantScoreQuery与FieldValueFilter
new ConstantScoreQuery(new FieldValueFilter("field"))
相关问题
- 1. 如何查找具有特定字段的所有文档
- 2. Lucene搜索具有特定字段的文档?
- 3. Lucene查询没有特定字段的文档
- 4. 查找所有至少具有给定查询词频率的Lucene文档
- 5. 查找具有(或没有)特定所有者的文件
- 6. 查找具有特定关键字的所有输入信息
- 7. 查找具有特定大小参数的所有文件夹?
- 8. 在MongoDB中查找包含不包含具有特定字段值的文档的数组的文档
- 9. Lucene搜索所有字段
- 10. 在lucene索引的所有文档中查找一个文档的条目
- 11. 在CouchDB中获取具有特定字段值的文档?
- 12. 在lucene中查找一个字段的所有可用值.net
- 13. Lucene:查找以特定前缀开头的所有单词
- 14. 查找具有特定类
- 15. 查找具有特定名称的所有子文件夹,使得超级文件夹具有特定模式
- 16. 查找具有非零字段的所有记录?
- 17. jQuery查找具有特定类的所有元素
- 18. 硒查找具有特定属性的所有元素
- 19. 查找具有特定属性值的所有标签
- 20. 使用rolify查找具有特定角色的所有用户
- 21. Indexeddb搜索具有特定字段的所有订单
- 22. 领域查询所有具有特定值的字段的实体
- 23. mongodb + nodejs查找并返回文档中的特定字段
- 24. 在文件中查找具有特定字符串的行数
- 25. 有没有可能在Lucene中查找最接近字符串的文档?
- 26. 在属性href中查找具有特定字符串的所有“A”标签?
- 27. 如何查询Algolia以查找缺少特定密钥的所有文档?
- 28. 查找特定字段在Oracle中具有多于“n”个字符数的所有记录
- 29. 在Unix中查找具有特定扩展名的所有文件?
- 30. Python:如何查找具有特定扩展名的所有文件?
这应该工作。如果字段的值以数字或大写字母开头,则会稍微复杂一些。 OR查询应该很容易做到。 – 2010-09-14 16:58:53
好点!但是如果它以大写开头,那么以*开头的范围应该可以捕捉它,因为TermRangeQuery的javadoc声明它使用String.compareTo来确定字符串是否是范围的一部分。 – 2010-09-14 17:13:03
这看起来不错。不知道从数字开始捕捉记录,但这是一个好的开始。谢谢! – 2010-09-14 17:33:55