2016-08-05 5 views
0

単語 "6"と "buldings"を持つすべてのレコードを選択する必要があります。私は私のsolrにそのようなクエリを作成しています:lucene - cantはsolrの動作を理解しています(クエリ内の単語の場所を変更すると結果が変わります)

/select?q=name:2+AND+buildings 

solrは私に128の結果を返します。結果のほとんどは「126建物」や「建物7260」のようなものですが、「6」と「建物」という言葉だけが必要です。

が、私は、クエリ内の単語の場所を変更した場合:

/select?q=name:buildings+AND+2 

それは絶対に別の結果を私に返します - 正しいものを!今回は、単語 "6"と "建物"が本当に必要な単語 "7260"または "126"だけの奇妙なレコードはありません。

ソロは、単語の場所が変更された場合にソルバーが異なる結果を返すことを考慮せずにクエリを作成するため、最初のケースでこのような奇妙な結果を返す理由を教えてください。 単語「」の前に行くと、「6」だけを検索する方法を教えてください。

任意のヘルプが表示されます。

答えて

1

name:buildings AND 2は、フィールド( "name")がクエリの最初の用語にのみ適用されているため、name:2 AND buildingsと同じではありません。もう1つは、クエリパーサーの既定のフィールドで検索されています。

  • name:buildings AND 2と同じです:name:buildings AND defaultfield:2

  • name:2 AND buildingsと同じです:name:2 AND defaultfield:buildings

あなたは両方とも "名前" 欄に検索したい場合は、クエリを使用することができますlike:

name:(2 AND buildings) 
+0

ありがとうございました!それでおしまい。今の結果は同じです! – SuperYegorius

関連する問題