регулярное выражение прерывается, когда я использую двоеточие (:) - PullRequest
2 голосов
/ 03 мая 2019

Я только начал работать с упругим поиском. Начав работать, я имею в виду, что мне нужно запросить уже работающую эластичную базу данных. Есть хорошая документация регулярного выражения, которому они следуют. Я знаю об этом на их официальном сайте, но это не очень полезно.

Более конкретная проблема заключается в том, что я хочу запросить строки вида:

10:02:37:623421|0098-TSOT {TRANSITION} {ID} {1619245525} {securityID} {} {fromStatus} {NOT_PRESENT} {toStatus} {WAITING}

или

01:01:36:832516|0058-CT {ADD} {0} {3137TTDR7} {23} {COM} {New} {0} {0} {52} {1}

и более аналогичной структуры. Я не хочу обобщенного регулярного выражения. Если возможно, кто-нибудь может дать мне выражение для каждого из них, которое будет работать с упругим?

Я заметил, что это совпадает, если регулярное выражение совпадает с подстрокой, когда я работал с:

query = {"query":
             {"regexp":
                  {
                      "message": "[0-9]{2}"
                  }
              },
         "sort":
             [
                 {"@timestamp":"asc"}
             ]
         }

Но это не будет совпадать с чем-либо, если я использую:

query = {"query":
             {"regexp":
                  {
                      "message": "[0-9]{2}:.*"
                  }
              },
         "sort":
             [
                 {"@timestamp":"asc"}
             ]
         }

Я хочу написать регулярные выражения, которые являются более конкретными и отличаются для двух примеров, приведенных в верхней части.

1 Ответ

1 голос
/ 06 мая 2019

оказывается, что мое сообщение присутствует в токенизированной форме вместо необработанной формы, а : является одним из разделителей по умолчанию токенизатора, в эластичном.И как причина, я не могу использовать запрос регулярного выражения для всего сообщения, потому что он сопоставляет его с каждым токеном в отдельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...