私はSOや他の場所をオンラインで調べましたが、私の問題に固有のものは見つかりませんでした。他の誰かがそれを経験したのだろうか?そして、彼らはどのように解決しましたか?
マルチワードフィールドのワイルドカード検索を実行しようとしています。これは、最初の単語を入力している間は正常に機能しますが、2番目の単語を入力し始めるとすぐに、最初の単語は無視されます。
私のインデックスの各ドキュメントは1人の人物を表し、インデックス付きフィールド「name」があります。
<field name="name" type="string" indexed="true" stored="true" required="true" />
何が起こるべきか:
「BruceRob」と入力すると、ドキュメント「BruceRobertson」が返されます。
何が起こっている:
「Bru」と入力すると、「BruceRobertson」が返されます。しかし、2番目の単語(たとえば「BruceRob」)を開始するとすぐに、「Rob」で始まる結果が返され始めます。前の単語は完全に無視されます。
PHPクライアントライブラリを使用しています。生成されるクエリは次のようになります。
fq=type%3Aperson&sort=id+desc&wt=json&json.nl=map&q=name%3Abruce+rob%2A&start=0&rows=3
どんな助けでも大歓迎です。
編集:PHPコード
$options = array('fq' => "type:person",'sort' => 'id desc');
$results = $this->solr->search('name:' . $val . '*', 0, 3, $options);