MongoDB全文索引字符,不是停止字符(标记分隔符)



假设我想有一个"text index"对于部分搜索和高级搜索,在文本字段中执行如下操作:

supertext": "a111=萨尔瓦多a111=萨尔瓦a111=萨尔瓦a111=萨尔瓦a111=萨尔瓦a111=萨尔瓦多a113=赫尔南德斯a113=她的a113=赫尔南德斯a113=赫尔纳a113=赫尔南a113=赫尔南德">

似乎等号是解析器的标记分隔符(停止字符)之一。这个MongoDB文档页面引用unicode字符:破折号,连字符,Pattern_Syntax, Quotation_Mark, Terminal_Punctuation和White_Space在unicode 8.0字符数据库PropList从这里:https://www.unicode.org/Public/8.0.0/ucd/PropList.txt

我想知道的是相反的情况。我可以使用哪些非标记分隔符的特殊字符?

我想找到"a111=萨尔瓦多"在文本字段中。现在,搜索"a111=萨尔瓦多"还有"萨尔瓦多";返回相同或相似的分数。

例如,在存储数据时还可以使用什么,例如:

a111#Salvador
a111@Salvador
a111`Salvador

似乎有人可能有这方面的经验,而不是我花几个小时搜索Unicode页面上不存在的字符。

或者我需要更长的alpha字符系列,或者不需要字符?

a111valueSalvador
a111Salvador

当前主控https://github.com/mongodb/mongo/blob/eb2b72cf9c0269f086223d499ac9be8a270d268c/src/mongo/db/fts/unicode/gen_delimiter_list.py#L27的分隔符为:

delim_properties = [
"White_Space", "Dash", "Hyphen", "Quotation_Mark", "Terminal_Punctuation", "Pattern_Syntax",
"STerm"
]

给你留下了很多其他的符号来选择。试试中间的点,例如:

00B7          ; Other_ID_Continue # Po       MIDDLE DOT
0387          ; Other_ID_Continue # Po       GREEK ANO TELEIA

经U+00B7 -a111·Salvador测试,效果良好,看起来很整洁。

在python中:

separator = 'u00B7'
sample = "a111" + separator + "Salvador"
print(sample)

相关内容

  • 没有找到相关文章

最新更新