Поиск чисел с Zend_Search_Lucene

Вам необходимо использовать брокер MQTT, который поддерживает общие подписки 1

Эта функция позволяет вам иметь несколько клиентов, подписанных на одну и ту же тему, и брокер будет доставлять их в один прием. -процедура для всех клиентов (например, первое сообщение клиенту 1, второе клиенту 2, третье клиенту 1, четвертое клиенту 2 ...)

1 Общие подписки были Эта функция была реализована несколькими брокерами в v3, но с разными механизмами, поэтому они не всегда были совместимы, так как в v5 спецификации MQTT Shared Subscription является необязательным компонентом, который может поддерживать брокер, и все брокеры, реализующие эту функцию, должны вести себя одинаково. [ 112]

5
задан 13 February 2009 в 19:23
поделиться

2 ответа

Это - эффект, которого Анализатор Вы выбрали.

Я полагаю, что Анализатор по умолчанию будет только индексные термины, которые соответствуют / [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 был термин.

См. http://framework.zend.com/manual/en/zend.search.lucene.extending.html#zend.search.lucene.extending.analysis

Ваш другой выбор состоит в том, чтобы сохранить ssn как Zend_Search_Lucene_Field:: Ключевое слово. Так как ключевое слово не разбито в условия.

http://framework.zend.com/manual/en/zend.search.lucene.html#zend.search.lucene.index-creation.understanding-field-types

2
ответ дан 14 December 2019 в 19:27
поделиться

Сначала вам нужно изменить анализатор текста, чтобы он включал числа

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), но для натуральных чисел (например, идентификаторов) работает как шарм.

3
ответ дан 14 December 2019 в 19:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: