라이브러리

[PHP] SolrDisMaxQuery::setBigramPhraseFields - pf2 매개변수를 사용하여 Bigram Phrase Fields 및 해당 boost(및 slop)를 설정합니다.




SolrDisMaxQuery와 BigramPhraseFields


SolrDisMaxQuery는 Apache Solr의 디스맥스 쿼리 클래스입니다. 디스맥스 쿼리는 Solr의 쿼리 파라미터를 사용하여 쿼리를 빌드하는 방법입니다. BigramPhraseFields는 SolrDisMaxQuery의 메서드 중 하나로, 이 메서드는 두 단어를 함께 검색하는 필드를 지정하는 데 사용됩니다.

BigramPhraseFields 사용하기


BigramPhraseFields를 사용하여 두 단어를 함께 검색하는 필드를 지정하려면 다음 코드를 사용할 수 있습니다.

#hostingforum.kr
php

use SolariumQueryTypeSelectQueryQuery;

use SolariumQueryTypeSelectQueryFilterQuery as FilterQuery;

use SolariumQueryTypeSelectQueryFilterDisMaxQuery;



// Solr 클라이언트 인스턴스 생성

$client = new SolariumClient($config);



// 디스맥스 쿼리 인스턴스 생성

$query = $client->createSelect();



// BigramPhraseFields 지정

$query->getDisMaxQuery()->setBigramPhraseFields('title', 'description');



// 쿼리 빌드

$query->setQuery('이름');



// 결과 가져오기

$result = $client->execute($query);



// 결과 출력

foreach ($result->getResults() as $doc) {

    echo $doc->getTitle() . "
";

    echo $doc->getDescription() . "
";

}



BigramPhraseFields 옵션


BigramPhraseFields는 다음과 같은 옵션을 지원합니다.

* `field`: 필드 이름
* `slop`: 슬롭 값 (기본값: 0)
* `infix`: 인픽스 값 (기본값: true)
* `boost`: 부스트 값 (기본값: 1.0)

예를 들어, 다음 코드는 `title` 필드에서 `slop` 값을 2로 설정하고 `infix` 값을 false로 설정하여 두 단어를 함께 검색합니다.

#hostingforum.kr
php

$query->getDisMaxQuery()->setBigramPhraseFields('title', [

    'slop' => 2,

    'infix' => false,

]);



참고


* Apache Solr 공식 문서:
* Solarium 공식 문서:
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 168 페이지

검색

게시물 검색