Postgresql:处理文本,检测出按字母顺序排列的行

时间:2015-03-11 21:37:16

标签: postgresql text string-metric

我有一些处理过的文本(大部分)按字母顺序排列,例如这些是每个段落的第一个词:

  • 阿德兰托
  • Agoura Hills
  • 阿拉米达
  • 奥尔巴尼
  • Old Albany
    • New Albany
  • 阿罕布拉
  • Aliso Viejo
  • 阿尔图拉斯

所以上面的每个单词代表段落的开头,例如:

  

Adelanto,位于加利福尼亚州圣贝纳迪诺县的一个城市,位于大洛杉矶地区内陆帝国的高沙漠地区维克多维尔西北约9英里(14公里)处...

每个条目的文本可以包含多个段落,因此不按字母顺序排列的段落将被视为新条目。

所以每个条目都对应一个地方。

在示例中,O(ld)在A(lbany)之后,因此Old Albany是条目,但是N(ew)在O(ld)之前,因此New Albany是{{的延续1}}。

我的问题是:除了在Postgresql中使用Old AlbanyAlbany / Old Albany的第一个字母之间的ASCII字符差异之外,是否还存在其他内容?例如。 ASCII('A') - ASCII('O')给出-14。

所以我只在第一个字符上使用ASCII值?或者是否有更通用的解决方案?

1 个答案:

答案 0 :(得分:0)

目前,我使用文字首字母之间的ASCII差异,比较previousRow.descriptionnextRow.description,例如。

ABS (ASCII (substring ( currentRow.description, 1,1 ) )  - 
ASCII ( substring ( previousRow.description, 1 ,1 ) )