summaryrefslogtreecommitdiff
path: root/python-ckanext-search-tweaks.spec
blob: 1a09e081a3e0fbe65eb1a8e8e073bb5500d6f64d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
%global _empty_manifest_terminate_build 0
Name:		python-ckanext-search-tweaks
Version:	0.5.0
Release:	1
Summary:	please add a summary manually as the author left a blank one
License:	AGPL
URL:		https://github.com/DataShades/ckanext-search-tweaks
Source0:	https://mirrors.aliyun.com/pypi/web/packages/4b/34/2f77f0c3ce888cb9b22c2271b33c486a4cd59c4073d21b6e78d6170d4831/ckanext-search-tweaks-0.5.0.tar.gz
BuildArch:	noarch

Requires:	python3-freezegun
Requires:	python3-typing-extensions

%description
### <a id="search_tweaks_query_relevance"></a> search_tweaks_query_relevance
Increase relevance of datasets for particular query depending on number of
direct visits of the dataset after running this search. I.e, if user searches
for `something` and then visits dataset **B** which is initially displayed in a
third row of search results, eventually this dataset will be displayed on the
second or even on the first row. This is implemented in three stages. On the
first stage, statistics collected and stored inside storage(redis, by default)
and then this statistics converted into numeric solr field via cronjob.
Finally, Solr's boost function that scales number of visits and improves score
for the given query is applied during search.
Following steps are required in order to configure this plugin:
- Add field that will store statistics to schema.xml(`query_relevance_` prefix
  can be changed via config option):
		<dynamicField name="query_relevance_*"  type="int" indexed="true" stored="true"/>
- Configure a cronjob which will update search-index periodically:
		0 0 * * * ckan search-index rebuild
#### CLI
	relevance query align - remove old data from storage. Actual result of this command depends
		on storage backend, that is controlled by config. At the momment, only `redis-daily` backend
		is affected by this command - all records older than `query_relevance.daily.age` days are removed.
	relevance query export - export statistics as CSV.
	relevance query import - import statistics from CSV. Note, records that are already in storage but
		are not listed in CSV won't be removed. It must be done manually
#### Config settings
	# Which backend to use in order to collect information about dataset
	# relevance for the particular search query. Possible values are:
	# "redis-permanent", "redis-daily"
	# (optional, default: redis-daily).
	ckanext.search_tweaks.query_relevance.backend = redis-permanent
	# How long(in days) information about dataset visits will be stored in order to
	# update relevance of dataset in search query.
	# (optional, default: 90).
	ckanext.search_tweaks.query_relevance.daily.age = 90
	# Solr boost function with $field placeholder that will be replaced by
	# the correspoinding field name
	# (optional, default: "scale(def($field,0),1,1.2)").
	ckanext.search_tweaks.query_relevance.boost_function = recip($field,1,1000,1000)
	# Prefix of the numeric field defined in Solr schema. This field will hold
	# dataset's relevance for the given query.
	# (optional, default: query_relevance_).

%package -n python3-ckanext-search-tweaks
Summary:	please add a summary manually as the author left a blank one
Provides:	python-ckanext-search-tweaks
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-ckanext-search-tweaks
### <a id="search_tweaks_query_relevance"></a> search_tweaks_query_relevance
Increase relevance of datasets for particular query depending on number of
direct visits of the dataset after running this search. I.e, if user searches
for `something` and then visits dataset **B** which is initially displayed in a
third row of search results, eventually this dataset will be displayed on the
second or even on the first row. This is implemented in three stages. On the
first stage, statistics collected and stored inside storage(redis, by default)
and then this statistics converted into numeric solr field via cronjob.
Finally, Solr's boost function that scales number of visits and improves score
for the given query is applied during search.
Following steps are required in order to configure this plugin:
- Add field that will store statistics to schema.xml(`query_relevance_` prefix
  can be changed via config option):
		<dynamicField name="query_relevance_*"  type="int" indexed="true" stored="true"/>
- Configure a cronjob which will update search-index periodically:
		0 0 * * * ckan search-index rebuild
#### CLI
	relevance query align - remove old data from storage. Actual result of this command depends
		on storage backend, that is controlled by config. At the momment, only `redis-daily` backend
		is affected by this command - all records older than `query_relevance.daily.age` days are removed.
	relevance query export - export statistics as CSV.
	relevance query import - import statistics from CSV. Note, records that are already in storage but
		are not listed in CSV won't be removed. It must be done manually
#### Config settings
	# Which backend to use in order to collect information about dataset
	# relevance for the particular search query. Possible values are:
	# "redis-permanent", "redis-daily"
	# (optional, default: redis-daily).
	ckanext.search_tweaks.query_relevance.backend = redis-permanent
	# How long(in days) information about dataset visits will be stored in order to
	# update relevance of dataset in search query.
	# (optional, default: 90).
	ckanext.search_tweaks.query_relevance.daily.age = 90
	# Solr boost function with $field placeholder that will be replaced by
	# the correspoinding field name
	# (optional, default: "scale(def($field,0),1,1.2)").
	ckanext.search_tweaks.query_relevance.boost_function = recip($field,1,1000,1000)
	# Prefix of the numeric field defined in Solr schema. This field will hold
	# dataset's relevance for the given query.
	# (optional, default: query_relevance_).

%package help
Summary:	Development documents and examples for ckanext-search-tweaks
Provides:	python3-ckanext-search-tweaks-doc
%description help
### <a id="search_tweaks_query_relevance"></a> search_tweaks_query_relevance
Increase relevance of datasets for particular query depending on number of
direct visits of the dataset after running this search. I.e, if user searches
for `something` and then visits dataset **B** which is initially displayed in a
third row of search results, eventually this dataset will be displayed on the
second or even on the first row. This is implemented in three stages. On the
first stage, statistics collected and stored inside storage(redis, by default)
and then this statistics converted into numeric solr field via cronjob.
Finally, Solr's boost function that scales number of visits and improves score
for the given query is applied during search.
Following steps are required in order to configure this plugin:
- Add field that will store statistics to schema.xml(`query_relevance_` prefix
  can be changed via config option):
		<dynamicField name="query_relevance_*"  type="int" indexed="true" stored="true"/>
- Configure a cronjob which will update search-index periodically:
		0 0 * * * ckan search-index rebuild
#### CLI
	relevance query align - remove old data from storage. Actual result of this command depends
		on storage backend, that is controlled by config. At the momment, only `redis-daily` backend
		is affected by this command - all records older than `query_relevance.daily.age` days are removed.
	relevance query export - export statistics as CSV.
	relevance query import - import statistics from CSV. Note, records that are already in storage but
		are not listed in CSV won't be removed. It must be done manually
#### Config settings
	# Which backend to use in order to collect information about dataset
	# relevance for the particular search query. Possible values are:
	# "redis-permanent", "redis-daily"
	# (optional, default: redis-daily).
	ckanext.search_tweaks.query_relevance.backend = redis-permanent
	# How long(in days) information about dataset visits will be stored in order to
	# update relevance of dataset in search query.
	# (optional, default: 90).
	ckanext.search_tweaks.query_relevance.daily.age = 90
	# Solr boost function with $field placeholder that will be replaced by
	# the correspoinding field name
	# (optional, default: "scale(def($field,0),1,1.2)").
	ckanext.search_tweaks.query_relevance.boost_function = recip($field,1,1000,1000)
	# Prefix of the numeric field defined in Solr schema. This field will hold
	# dataset's relevance for the given query.
	# (optional, default: query_relevance_).

%prep
%autosetup -n ckanext-search-tweaks-0.5.0

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-ckanext-search-tweaks -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Thu Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
- Package Spec generated