1

我有一个程序可以通过在数据库中搜索来快速翻译一些预定义的句子。

一个示例句子是:

I like to eat 2 sandwitches every 3 days

问题是数据库可能包含以下句子:

I like to eat 3 sandwitches every 3 days

所以查询不会找到它。我面临的问题基本上是2:

1)我如何在sqlite数据库中搜索一个字符串并确保它是同一个句子,只是一个不同的数字?

2)我怎样才能用正确的数字生成新句子?

它必须很快,因为要翻译的典型文件包含 5000 个句子,而数据库包含 10000 个或更多。

语言是 VB.Net。所有进行搜索的代码都已经完成。仍然需要什么,我不知道从哪里开始是搜索具有不同数字的相同字符串的代码。通用代码就可以了,然后我可以将其调整为我的代码。

谢谢

4

1 回答 1

1

可以使用通配符进行搜索LIKE

SELECT * FROM MyTable WHERE Text LIKE 'I like to eat % sandwitches every % days'

GLOB(区分大小写):

SELECT * FROM MyTable WHERE Text GLOB 'I like to eat * sandwitches every * days'

但是,此类搜索不能使用索引。

您可以改用全文搜索表。 MATCH不支持通配符,但您可以使用NEAR运算符搜索相邻的句子部分:

SELECT *
FROM MyTable
WHERE Text MATCH '"I like to eat" NEAR/1 "sandwitches every" NEAR/1 days'

NEAR不考虑顺序,所以这也会匹配一个句子,如I like to eat days sandwitches every; 之后您必须检查返回的字符串。

于 2013-06-06T06:59:46.080 回答