我正在开发一个web应用程序,它允许用户在源代码存储库中进行搜索。
程序分析差异。
我找不到将diff的所有部分注入Postgres的全文向量的方法。
例子:

select alias, description, token from ts_debug('Link to <a href="//www.yahoo.com">Yahoo!</a> web site');
+-----------+-----------------+----------------------------+
|   alias   |   description   |           token            |
+-----------+-----------------+----------------------------+
| asciiword | Word, all ASCII | Link                       |
| blank     | Space symbols   |                            |
| asciiword | Word, all ASCII | to                         |
| blank     | Space symbols   |                            |
| tag       | XML tag         | <a href="//www.yahoo.com"> |
| asciiword | Word, all ASCII | Yahoo                      |
| blank     | Space symbols   | !                          |
| tag       | XML tag         | </a>                       |
| blank     | Space symbols   |                            |
| asciiword | Word, all ASCII | web                        |
| blank     | Space symbols   |                            |
| asciiword | Word, all ASCII | site                       |
+-----------+-----------------+----------------------------+

它似乎被解析得很好。但如果我把它转换成文档向量,XML标记就不会包含在内。
select to_tsvector('simple', 'Link to <a href="//www.yahoo.com">Yahoo!</a> web site') to_tsvector;
+--------------------------------------------+
|                to_tsvector                 |
+--------------------------------------------+
| 'link':1 'site':5 'to':2 'web':4 'yahoo':3 |
+--------------------------------------------+

我想这和配置有关吧?
有什么想法吗?

最佳答案

解析器解析出标记,但默认配置“simple”忽略它们(在psql中可以通过运行\dF+ simple看到,忽略未列出的标记)。
你可以告诉它不要忽视它们:

alter text search configuration simple add mapping for tag with simple;

但是,最好先复制配置,然后修改副本。
您可能还需要一个自定义字典来处理标记,因为“简单”字典不太可能满足您的需要。
select to_tsvector('simple', 'Link to <a href="//www.yahoo.com">Yahoo!</a> web site') to_tsvector;
                                    to_tsvector
------------------------------------------------------------------------------------
 '</a>':5 '<a href="//www.yahoo.com">':3 'link':1 'site':7 'to':2 'web':6 'yahoo':4

10-05 23:06
查看更多