Skip to content

Commit

Permalink
feat(seasearch): add search in folder sup (#376)
Browse files Browse the repository at this point in the history
  • Loading branch information
cir9no committed Sep 5, 2024
1 parent c437110 commit 6a9d62f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 9 deletions.
3 changes: 2 additions & 1 deletion seafevent_server/request_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def search():
query = data.get('query').strip()
repos = data.get('repos')
suffixes = data.get('suffixes')
search_path = data.get('search_path')

if not query:
return {'error_msg': 'query invalid.'}, 400
Expand All @@ -153,6 +154,6 @@ def search():
except:
count = 20

results = index_task_manager.keyword_search(query, repos, count, suffixes)
results = index_task_manager.keyword_search(query, repos, count, suffixes, search_path)

return {'results': results}, 200
4 changes: 2 additions & 2 deletions seasearch/index_store/index_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ def delete_repo_filename_index(self, repo_id, repo_filename_index, repo_status_f
repo_filename_index.delete_index_by_index_name(repo_filename_index_name)
repo_status_filename_index.delete_documents_by_repo(repo_id)

def keyword_search(self, query, repos, repo_filename_index, count, suffixes=None):
return repo_filename_index.search_files(repos, query, 0, count, suffixes)
def keyword_search(self, query, repos, repo_filename_index, count, suffixes=None, search_path=None):
return repo_filename_index.search_files(repos, query, 0, count, suffixes, search_path)
11 changes: 7 additions & 4 deletions seasearch/index_store/repo_file_name_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ class RepoFileNameIndex(object):
}
}


def __init__(self, seasearch_api, repo_data, shard_num):
self.seasearch_api = seasearch_api
self.repo_data = repo_data
Expand Down Expand Up @@ -122,7 +121,7 @@ def _add_suffix_filter(self, query_map, suffixes):
query_map['bool']['filter'].append({'term': {'suffix': suffixes.lower()}})
return query_map

def search_files(self, repos, keyword, start=0, size=10, suffixes=None):
def search_files(self, repos, keyword, start=0, size=10, suffixes=None, search_path=None):
bulk_search_params = []
for repo in repos:
repo_id = repo[0]
Expand All @@ -134,9 +133,13 @@ def search_files(self, repos, keyword, start=0, size=10, suffixes=None):

if origin_repo_id:
repo_id = origin_repo_id
query_map = self._add_path_filter(query_map, origin_path)
query_map = self._add_suffix_filter(query_map, suffixes)
if search_path:
search_path = os.path.join(origin_path, search_path.strip('/'))
else:
search_path = origin_path

query_map = self._add_suffix_filter(query_map, suffixes)
query_map = self._add_path_filter(query_map, search_path)
data = {
'query': query_map,
'from': start,
Expand Down
4 changes: 2 additions & 2 deletions seasearch/index_task/index_task_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ def _parse_config(self, config):
int(SHARD_NUM),
)

def keyword_search(self, query, repos, count, suffixes):
def keyword_search(self, query, repos, count, suffixes, search_path):
return self.index_manager.keyword_search(
query, repos, self._repo_filename_index, count, suffixes
query, repos, self._repo_filename_index, count, suffixes, search_path
)


Expand Down

0 comments on commit 6a9d62f

Please sign in to comment.