У меня есть текстовый столбец в таблице. Мы храним XML в этом столбце. Теперь я хочу, чтобы искать по тегам и значенияPostgreSql XML Текстовый поиск
Пример данных:
<bank>
<name>Citi Bank</name>
.....
.....
/<bank>
Я хотел бы выполнить следующий запрос:
выберите * от хххх, где to_tsvector («английский», xml_column) @ @ to_tsquery ('<name>Citi Bank</name>
')
Это прекрасно работает, но также работает с тегами, такими как name1 или no tag.
Как мне настроить мой поиск, чтобы это работало, поэтому я получаю точное соответствие для тега и значения?
xml_column не имеет типа xml, это обычный текст. Я пробовал с xpath, но индексирование не работает .... длинный рассказ. Мне нужно сделать эту работу простым текстовым поиском – cro
Я не думаю, что ее можно использовать только с текстовыми индексами. Вы можете попробовать комбинированный подход, используя XMLPARSE, чтобы передать текст в xml, чтобы вы могли использовать выражения xpath и полное текстовое выражение, которое у вас уже есть, во избежание полного сканирования. – Samuel
Привет, вы должны использовать '// text()', поэтому 'array_to_string (xpath ('path // text()', content) :: text [], '')' для получения всего текста, например, HTML-документ со многими внутренними тегами. –