コード例 #1
0
 public RecursivePrefixTreeStrategyDistanceCustomScoreQuery(Query subQuery, RecursivePrefixTreeStrategy strategy, Point origin, String shapeField)
     : base(subQuery)
 {
     _strategy      = strategy;
     _origin        = origin;
     _cacheProvider = new PointPrefixTreeFieldCacheProvider(_strategy.GetGrid(), shapeField, 255);
 }
コード例 #2
0
            public RecursivePrefixTreeStrategyDistranceCustomScoreProvider(IndexReader reader, RecursivePrefixTreeStrategy strategy, PointPrefixTreeFieldCacheProvider cacheProvider, Point origin)
                : base(reader)
            {
                var ctx = strategy.GetSpatialContext();

                _originPt = origin;

                _calculator = ctx.GetDistCalc();
                _nullValue  = (ctx.IsGeo() ? 180 : float.MaxValue);
                _cache      = cacheProvider.GetCache(reader);
            }
コード例 #3
0
 public ShapeFieldCacheProvider<Point> GetCacheProvider()
 {
     PointPrefixTreeFieldCacheProvider p;
     if (!provider.TryGetValue(GetFieldName(), out p) || p == null)
     {
         lock (this)
         {//double checked locking idiom is okay since provider is threadsafe
             if (!provider.ContainsKey(GetFieldName()))
             {
                 p = new PointPrefixTreeFieldCacheProvider(grid, GetFieldName(), defaultFieldValuesArrayLen);
                 provider[GetFieldName()] = p;
             }
         }
     }
     return p;
 }