Skip to content

Instantly share code, notes, and snippets.

import json
import string
from math import log, sqrt
from collections import defaultdict
def tokenize_field(field):
string_field = str(field).lower()
no_punctuation_field = string_field.translate(str.maketrans('', '', string.punctuation))
return list(filter(None, no_punctuation_field.split()))
import React from 'react'
class App extends Component {
state = {error: false}
componentDidMount() {
fetch(url)
.then(() => {
// do something
})
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="lang/stopwords_en.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
{
"add-copy-field":{
"source":"brand",
"dest":"copyall"
}
}
<fieldType name="facets" class="solr.TextField">
<analyzer>
<tokenizer class="solr.ClassicTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"/>
<filter class="solr.ClassicFilterFactory"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
</analyzer>
</fieldType>
import more_itertools as mit
facets = {}
for k,v in raw_response['facet_counts']['facet_fields'].items():
spec_list = [list(spec) for spec in mit.chunked(v, 2)]
spec_dict = {}
for spec in spec_list:
spec_dict[spec[0]] = spec[1]
facets[k] = spec_dict
def apply_facet_filters(self):
if self.there_are_facets():
for facet, facet_arr in self.facet_filter.items():
if len(facet_arr) > 0:
new_facet_arr = []
for a_facet in facet_arr:
new_facet_arr.append("{0}: \"{1}\"".format(facet, a_facet))
self.solr_args.append(('fq', ' OR '.join(new_facet_arr)))
from urllib.request import urlopen
import urllib.parse
import simplejson
def gallery_items(current_query):
solr_tuples = [
# text in search box
('q', "mens shirt gap"),
# how many products do I want to return
"facet_fields" : {
"gender" : [
"Men" , 25,
"Women" , 0
],
"style" : [
"casual", 10,
"dress", 0
],
"material" : [