Skip to content

input automaton is too large for lengthy wildcard query #11809

@taroplus

Description

@taroplus

Description

Hello, I have a very lengthy string to search with, basically

String term = "very-lengthy-text-contains-dots-and-dashes";

When I try to create a WildcardQuery like below, I get java.lang.IllegalArgumentException: input automaton is too large: 1001

WildcardQuery query = new WildcardQuery(new Term("field", term + "*"));

exception looks like this

java.lang.IllegalArgumentException: input automaton is too large: 1001

	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1060)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)
	at org.apache.lucene.util.automaton.Operations.isFinite(Operations.java:1066)

Actual string I have is below

"{group-bm-http-server-02083.node.dm.reg,group-bm-http-server-02082.node.dm.reg,group-bm-http-server-02081.node.dm.reg,group-bm-http-server-02080.node.dm.reg,group-bm-http-server-02079.node.dm.reg,group-bm-http-server-02078.node.dm.reg,group-bm-http-server-02077.node.dm.reg,group-bm-http-server-02076.node.dm.reg,group-bm-http-server-02073.node.dm.reg,group-bm-http-server-02070.node.dm.reg,group-bm-http-server-02067.node.dm.reg,group-bm-http-server-02064.node.dm.reg,group-bm-http-server-02029.node.dm.reg,group-bm-http-server-02028.node.dm.reg,group-bm-http-server-02027.node.dm.reg,group-bm-http-server-02026.node.dm.reg,group-bm-http-server-02025.node.dm.reg,group-bm-http-server-02023.node.dm.reg,group-bm-http-server-02022.node.dm.reg,group-bm-http-server-02021.node.dm.reg,group-bm-http-server-02020.node.dm.reg,group-bm-http-server-02019.node.dm.reg,group-bm-http-server-02018.node.dm.reg,group-bm-http-server-02016.node.dm.reg,group-bm-http-server-02015.node.dm.reg,group-bm-http-server-02014.node.dm.reg,group-bm-http-server-02009.node.dm.reg,group-bm-http-server-02007.node.dm.reg,group-bm-http-server-02004.node.dm.reg,group-bm-http-server-02003.node.dm.reg,group-bm-http-server-02002.node.dm.reg,group-bm-http-server-01311.node.dm.reg,group-bm-http-server-01309.node.dm.reg,group-bm-http-server-01307.node.dm.reg}"

i know it's not a ordinal situation, however, I'm not sure why Automaton compilation needs to go that deep when there's no * or ? except the last one.

Version and environment details

Lucene 8.11.1 / Java 8

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions