일반적으로 검색 할 때 검색 문자열을 제공하고 검색 문자열이 해당 검색 문자열과 일치하는 결과 목록을 기대합니다.파이썬에서 검색 문자열을 검색하는 방법
내가 원하는 것은 그 반대입니다. 검색 문자열 목록과 한 이야기를 제공하고 그 이야기와 일치하는 검색 문자열을 찾으십시오.
이제이 작업을 다시 수행 할 수 있지만 여기서는 solr이 지원하는 복잡한 검색 쿼리를 사용하려고합니다. query syntax here의 전체 세부 정보 참고 : 나는 부스트를 사용하지 않을 것이다.
기본적으로 아래 예제 코드에서 doesitmatch 함수에 대한 몇 가지 포인터를 얻고 싶습니다.
def doesitmatch(contents, searchstring):
"""
returns result of searching contents for searchstring (True or False)
"""
???????
???????
story = "big chunk of story 200 to 1000 words long"
searchstrings = ['sajal' , 'sajal AND "is a jerk"' , 'sajal kayan' , 'sajal AND (kayan OR bangkok OR Thailand OR (webmaster AND python))' , 'bangkok']
matches = [[searchstr] for searchstr in searchstrings if doesitmatch(story, searchstr) ]
편집 :는 또한 또한 모든 모듈은 정규식에 아래와 같은 루씬 쿼리를 변환 할 수있는 경우를 알고 관심을 가질만한 :
sajal AND (kayan OR bangkok OR Thailand OR (webmaster AND python) OR "is a jerk")
내 검색 엔진 (solr)을 사용할 때의 문제점은 목록 검색 문자열 위에있는 코드가 10,000 개 이상의 구를 갖게된다는 것입니다. 스토리 당 검색 서버를 10,000 번 이상 사용하는 것은 이상적이지 않습니다. 매우 비쌉니다. 어떤 복잡한 것들을 사용하지 않고 임 : Im은 정규 표현식으로 변환하는 함수를 작성하려고하지만, 제한된 정규식 기술을 사용하면 그러한 함수가 이미 파이썬에 존재하는지 조사 할 생각입니다. ... – sajal