Поиск Solr с использованием экранированных ключевых слов Solr

Как я могу запросить поля, которые содержат зарезервированные ключевые слова Solr как ":" в Solr?

Например,

q = 'uri:http://www.example.com'

выдает ошибку для " http://www.example.com/", содержащую зарезервированное слово ":"

2 ответа

Решение

Я только что проверил это, и кажется, что просто экранирование ":" like ":" делает свое дело:

q = 'uri:http\://www.example.com'

Для моего индекса моего собственного сайта я, как правило, просто храню путь URL, хотя сам домен знаю, так что раньше для меня это не было проблемой. Но если вы индексируете внешние URL-адреса, тогда, конечно, вам нужен полный URL-адрес.

Сбросить / заменить зарезервированные символы Lucene во время индексации и сохранить исходное значение в отдельном поле (stored="true" indexed="false" в схеме). Если вы замените зарезервированные символы пробелом, вы получите http www.example.com в индексированном поле и http://www.example.com в хранилище. В зависимости от типа индексированного поля, вы сможете запросить точное значение (если это обычная строка) или токены (если оно имеет анализатор).

Другие вопросы по тегам