open:sembast-filter

sembast filter

Filter.custom을 사용할 수도 있다.

List<String> words = text
    .split(RegExp(r'\s+'))
    .map<String>(
      (e) => '(?=.*$e)',
    )
    .toList();
String joined = words.join('');
RegExp re = RegExp('$joined.*', caseSensitive: false);
 
var finder = Finder(
    filter: Filter.and([
      // Filter.custom(
      //   (record) {
      //     var text = '${record[Fields.title]} ${record[Fields.subTitle]}';
      //     return text.contains(re);
      //   },
      // ),
      Filter.matchesRegExp(Fields.text, re),
      Filter.not(Filter.inList(Fields.id, excludes)),
    ]),
    sortOrders: [
      SortOrder(Fields.saleIndex, false),
      SortOrder(Fields.publishDateStr, false),
    ],
    limit: pageSize);
 
var snapshots = await store.find(db, finder: finder);


  • open/sembast-filter.txt
  • 마지막으로 수정됨: 2023/06/19 06:06
  • 저자 MORO