Drupal 모듈에서 프로그래밍 방식으로 apachesolr 쿼리를 생성하고 일부 측면에서 성공했지만 다른 사람들과 여전히 고심하고 있습니다.Apachesolr 쿼리 - 필드의 텍스트로 필터링
지금까지, 나는 다음과 같은 코드를 필터링 할 조건에 따라 결과를 특정 텍스트를 검색 할 수 있습니다 쿼리를 구성하고 제한 할 수있었습니다 :
$subquery_region->addFilter('tid', $term->tid);
$query->addFilterSubQuery($subquery_region, 'OR', 'AND');
내가하고 싶은 무엇 노드에서 특정 필드 내의 특정 텍스트를 찾기위한 필터를 추가하여 검색 범위를 좁힐 수 있습니다. 누구든지이 일을 할 수 있었습니까?
나는 온라인 연구 봤는데 같은 주요 검색에 추가 하위 쿼리에이를 주요 검색 쿼리$query->addParam('fl', 'ss_my_field');
$query->addFilter("ss_my_field", "field_substring_to_search_for");
에 직접 필터를 추가뿐만 아니라, 파괴 등의 다른 방법을 많이 시도 검색어
$subquery_test = apachesolr_drupal_query("Test");
$subquery_test->addParam('fl', 'ss_my_field');
$subquery_test->addFilter("ss_my_field", "field_substring_to_search_for");
$query->addFilterSubQuery($subquery_test, 'OR', 'AND');
그러나 이들 중 어느 것도 작동하지 않습니다. 비록 필터로 추가 할 필드에 하위 문자열이 있고 인덱스가 작성 되었음에도 불구하고 빈 세트를 반환합니다. apacheorl 뷰 모듈을 통해 검색 색인이 해당 필드로 채워지고 하위 문자열이 있음을 확인할 수 있습니다.
구문이나 쿼리 작성 방법에 문제가 있습니까?
특정 필드 내에서 텍스트를 검색하기위한 필터를 추가하는 방법을 알고 있다면 공유하십시오! 그것은 심지어 addFilter 함수로 수행되지 않을 수도 있습니다. 그러나 그것은 제가 지금까지 시도해 온 것입니다. 감사합니다.
램, 지금까지 도움을 주셔서 감사합니다. 첫 번째 부분은 아름답게 작동했으며 내 필드가 색인에 추가 된 것을 볼 수 있습니다. 그러나 설명한대로 addFilter() 함수를 사용하여 추가하면 아무 것도 반환하지 않습니다. 형식에 대한 다른 아이디어. 나는 지금까지 시도한 모든 것을 포함하도록 내 질문을 편집 중입니다 ... –