[solr ] solr 精确匹配

swp 2012-10-26
请教一个问题,我用solr对数据库某张存有大数量的表建索引,假如那张表中有个字段里面存的是各种复杂的sql语句,如果我想精确匹配某条sql语句,应该怎么做,我现在的做法是这个字段用string的类型不做分词,但是查询的时候由于sql的多样性(各种转义字符,and等关键字等等)不是很好做转义,而且不分词会增加很多存储空间,请问这个应该怎么办呢
swp 2012-10-29
怎么没人额
popzh2004 2012-11-12
1.索引主要是对关键字进行标记,而你的应用不太合适,全是复杂的sql语句
2.大字段不适合进行精确匹配,
3.建议你使用key value的形式
suyulin6688 2012-12-04
可以使用一个“转码”工具类,
solr索引时,可以把“复杂的sql语句”转码成“不包含特殊字符的字符串”,然后,进行不分词的索引(string的类型),
查询时,把 查询条件(输入的sql语句)也转码成“不包含特殊字符的字符串”,然后进行查询。

例如,我使用的“转码/解码”工具类

public class Codec {

/**
* 码表
*/
private final static String CODEC_TABLE = "abcdefghijklmnopqrstuvwxyz234567";

......

}
Global site tag (gtag.js) - Google Analytics