Вам необходимо использовать брокер MQTT, который поддерживает общие подписки 1 sup>
Эта функция позволяет вам иметь несколько клиентов, подписанных на одну и ту же тему, и брокер будет доставлять их в один прием. -процедура для всех клиентов (например, первое сообщение клиенту 1, второе клиенту 2, третье клиенту 1, четвертое клиенту 2 ...)
1 sup> Общие подписки были Эта функция была реализована несколькими брокерами в v3, но с разными механизмами, поэтому они не всегда были совместимы, так как в v5 спецификации MQTT Shared Subscription является необязательным компонентом, который может поддерживать брокер, и все брокеры, реализующие эту функцию, должны вести себя одинаково. [ 112]
Это - эффект, которого Анализатор Вы выбрали.
Я полагаю, что Анализатор по умолчанию будет только индексные термины, которые соответствуют / [a-zA-Z] +/. Это означает, что Ваш SSN не добавляется к индексу как термин.
Даже если Вы переключились на text+numeric нечувствительный к регистру Анализатор, что Вы желаете, все еще не будет работать. Выражение для термина / [a-zA-Z0-9] + / это означало бы, что Ваши условия, добавленные к индексу, будут 12,123,1234.
Если Вам нужно 123-12-1234, чтобы рассматриваться как допустимый термин, Вы, вероятно, испытываете необходимость, чтобы расширить Zend_Search_Lucene_Analysis_Analyzer_Common и сделать его так, чтобы 123-12-1234 был термин.
Ваш другой выбор состоит в том, чтобы сохранить ssn как Zend_Search_Lucene_Field:: Ключевое слово. Так как ключевое слово не разбито в условия.
Сначала вам нужно изменить анализатор текста, чтобы он включал числа
Zend_Search_Lucene_Analysis_Analyzer :: setDefault (новый Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum ());
Затем для полей с числами вы хотите использовать [1149094_Search_Search_Search_Search_95] вместо [1149094_Zendu_Search_90 Zend_Search_Lucene_Field :: Text это пропустит создание токенов и сохранит значение «как есть» в индексе. Тогда вы можете искать по нему. Я не знаю, как это ведет себя с числами с плавающей запятой (вероятно, не будет работать для чисел с плавающей запятой 3.0 не будет соответствовать 3), но для натуральных чисел (например, идентификаторов) работает как шарм.