gpt4 book ai didi

MySQL 全文搜索主题标签(包括索引中的# 符号)

转载 作者:行者123 更新时间:2023-11-29 02:26:10 26 4
gpt4 key购买 nike

我很确定应该有一种方法可以在 MyISAM 表中使用全文索引来搜索主题标签。默认设置将执行以下操作:

textfield 
hashtag
#hashtag
#two #hashtag #hashtag

SELECT * FROM table WHERE MATCH(textfield) AGAINST ('#hashtag')
> | hashtag |
> | #hashtag |
> | #two #hashtag #hashtag |

虽然它应该只返回第 2 行和第 3 行。看起来 hashtag 被视为单词定界符,因此在搜索开始之前将其“删除”。我应该如何启用索引和搜索包含 # 作为单词一部分的术语?

最佳答案

根据 Fine-Tuning MySQL Full-Text Search 记录:

You can change the set of characters that are considered word characters in several ways, as described in the following list. After making the modification, rebuild the indexes for each table that contains any FULLTEXT indexes. Suppose that you want to treat the hyphen character ('-') as a word character. Use one of these methods:

  • Modify the MySQL source: In storage/myisam/ftdefs.h, see the true_word_char() and misc_word_char() macros. Add '-' to one of those macros and recompile MySQL.

  • Modify a character set file: This requires no recompilation. The true_word_char() macro uses a “character type” table to distinguish letters and numbers from other characters. . You can edit the contents of the <ctype><map> array in one of the character set XML files to specify that '-' is a “letter.” Then use the given character set for your FULLTEXT indexes. For information about the <ctype><map> array format, see Section 10.3.1, “Character Definition Arrays”.

  • Add a new collation for the character set used by the indexed columns, and alter the columns to use that collation. For general information about adding collations, see Section 10.4, “Adding a Collation to a Character Set”. For an example specific to full-text indexing, see Section 12.9.7, “Adding a Collation for Full-Text Indexing”.

关于MySQL 全文搜索主题标签(包括索引中的# 符号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com