Solr中是否有特殊的字段类型用于IP地址,允许您在一系列IP地址中进行搜索?我唯一能想到的是使用Guava的InetAddresses.coerceToInteger和InetAddresses.fromInteger以整数格式存储IP。然后,每当我在IP范围内创建文档或搜索时,我都必须进行转换。我希望有一种领域类型可以解决所有这些问题。
答案 0 :(得分:2)
似乎没有这样的字段included by default但是通过扩展FieldType类并使用Guava InetAddresses和Guava转换器来编写自己的字段应该不会太难。定义了自定义类后,see here了解如何在schema.xml中实现该字段
答案 1 :(得分:2)
您可以使用solr.PathHierarchyTokenizerFactory
来进行基本的IP搜索。使用像这样的fielType
<fieldType name="ip_address" class="solr.TextField">
<analyzer>
<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="." replace="."/>
</analyzer>
</fieldType>
您可以执行q=ip:192.168
之类的搜索,这些搜索将返回以192.168.*.*
开头的所有IP
示例192.168.1.2
将被标记为