Creating New Query Component

Apr 11, 2013 at 2:43 PM
I am configuring a search farm with two crawl servers and query servers. I have run the script on the two crawl servers and two crawl commponents have been created with no issue. But when l run the script on the first Query server its failing to create new query component. This is how my AutoSPInstallerInput.xml on search service application is configured:
        <EnterpriseSearchServiceApplications>
            <EnterpriseSearchServiceApplication Name="Search Service Application"
                                                DatabaseServer=""
                                                DatabaseName="EnterpriseSearch_01"
                                                FailoverDatabaseServer=""
                                                Partitioned="True"
                                                Partitions="2"
                                                SearchServiceApplicationType="Regular"
                                                ContentAccessAccount="GG\MDCAA01"
                                                ContentAccessAccountPassword="SAPassword123">
                <ApplicationPool Name="SharePoint Search Application Pool" Account="GG\SPSearch01" Password="world123" />
                <CrawlComponent>
         <Server Name="SPPTTVIRTUAL01"/>
         <Server Name="SPPTTVIRTUAL02"/>
                </CrawlComponent>
                <QueryComponent>
                    <Server Name="SPPTPB2DBY67"/>
                    <Server Name="SPPTPB2DBY68"/>                       
                </QueryComponent>
                <!-- You should specify all the servers you listed in QueryComponent in the SearchQueryAndSiteSettingsServers node below as well -->
                <SearchQueryAndSiteSettingsServers>
                    <Server Name="SPPTPB2DBY67"/>
                    <Server Name="SPPTPB2DBY68"/> 
                </SearchQueryAndSiteSettingsServers>
                <!-- You can only run the AdminComponent on one server per Search Service App in a SP2010 farm, so only list one server here unless you are installing SharePoint 2013 and need multiple Admin components. -->
                <AdminComponent>
                    <Server Name="SPPTTVIRTUAL01" />
                    <ApplicationPool Name="SharePoint Search Application Pool" Account="GG\SPSearch01" />
                </AdminComponent>
                <Proxy Name="Search Service Application" Partitioned="True">
                    <ProxyGroup Name="Default" />
                </Proxy>
                <!-- SearchCenterUrl is for SharePoint 2013 only and is used to set the global search center URL per http://autospinstaller.codeplex.com/workitem/18944 -->
                <SearchCenterUrl></SearchCenterUrl>
            </EnterpriseSearchServiceApplication>
        </EnterpriseSearchServiceApplications>
    </EnterpriseSearchService>
Below is the error l am getting when it tries to create new query component:
  • Provisioning Enterprise Search...
    • Checking requested IndexLocation path...
    • Configuring search service...Done.
    • Enterprise search service application already exists, skipping creation.
    • Setting default index location on search service instance...Done.
    • Setting content access account for Search Service Application...
    • A crawl topology with crawl components already exists, skipping crawl topology creation.
    • A query topology already exists, skipping query topology creation.

- Creating new query component...

  • Script halted!
Exception : System.Management.Automation.ParameterBindingException:
                     Cannot convert 'System.Object[]' to the type 'Microsof
                    t.Office.Server.Search.Cmdlet.IndexPartitionPipeBind' r
                    equired by parameter 'IndexPartition'. Specified method
                     is not supported. ---> System.NotSupportedException: S
                    pecified method is not supported.
                       at System.Management.Automation.ParameterBinderBase.
                    CoerceTypeAsNeeded(CommandParameterInternal argument, S
                    tring parameterName, Type toType, ParameterCollectionTy
                    peInformation collectionTypeInfo, Object currentValue)
                       --- End of inner exception stack trace ---
                       at System.Management.Automation.ParameterBinderBase.
                    CoerceTypeAsNeeded(CommandParameterInternal argument, S
                    tring parameterName, Type toType, ParameterCollectionTy
                    peInformation collectionTypeInfo, Object currentValue)
                       at System.Management.Automation.ParameterBinderBase.
                    BindParameter(CommandParameterInternal parameter, Compi
                    ledCommandParameter parameterMetadata, ParameterBinding
                    Flags flags)
                       at System.Management.Automation.CmdletParameterBinde
                    rController.BindParameter(CommandParameterInternal argu
                    ment, MergedCompiledCommandParameter parameter, Paramet
                    erBindingFlags flags)
                       at System.Management.Automation.CmdletParameterBinde
                    rController.BindParameter(UInt32 parameterSets, Command
                    ParameterInternal argument, MergedCompiledCommandParame
                    ter parameter, ParameterBindingFlags flags)
                       at System.Management.Automation.CmdletParameterBinde
                    rController.BindParameters(UInt32 parameterSets, Collec
                    tion`1 arguments, CommandMetadata commandMetadata)
                       at System.Management.Automation.CmdletParameterBinde
                    rController.BindCommandLineParametersNoValidation(Colle
                    ction`1 arguments)
                       at System.Management.Automation.CmdletParameterBinde
                    rController.BindCommandLineParameters(Collection`1 argu
                    ments)
                       at System.Management.Automation.CommandProcessor.Bin
                    dCommandLineParameters(CommandParameterInternal[] param
                    eters)
                       at System.Management.Automation.CommandProcessor.Pre
                    pare(CommandParameterInternal[] parameters)
                       at System.Management.Automation.CommandProcessorBase
                    .DoPrepare(CommandParameterInternal[] parameters)
                       at System.Management.Automation.Internal.PipelinePro
                    cessor.Start(Boolean incomingStream)
                       at System.Management.Automation.Internal.PipelinePro
                    cessor.SynchronousExecuteEnumerate(Object input, Hashta
                    ble errorResults, Boolean enumerate)
TargetObject :
CategoryInfo : InvalidArgument: (:) [ForEach-Object], ParameterBinding
                    Exception
FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.For
                    EachObjectCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
PipelineIterationInfo : {1, 1}
PSMessageDetails :
Apr 12, 2013 at 7:19 PM
Help my friends!
Apr 15, 2013 at 2:30 PM
Hi Guys,

I am still getting the same error failimng to create query component.
Coordinator
Apr 18, 2013 at 4:50 AM
I think the problem might be with the number of partitions being greater than 1. Is this SP2010? I've not actually tested more than one partition myself...

Brian
Apr 18, 2013 at 9:26 AM
Yes it is SP2010. There is no issue with crawl components though two crawl components have been created. So do you suggest l change number of partitions from from 2 to 1 and after running autospinstaller then create a second query component maually.
Apr 18, 2013 at 10:33 AM
Hi Brian,

I realised l was making a mistake that if l need to use two query servers l will need to have two partitions. I have changed autospinstallerinput.xml
Partitioned="False"
Partitions="1"
I will run with that and if l need to create another index partition l will do that once the search farm is configured.
Apr 18, 2013 at 10:52 AM
Edited Apr 18, 2013 at 10:54 AM
Below is the error l am getting after removing Partition and still failing to create new query component.



System.Management.Automation.ParameterBinding
Cannot convert 'System.Object[]' to the type
t.Office.Server.Search.Cmdlet.IndexPartitionP
equired by parameter 'IndexPartition'. Specif
is not supported. ---> System.NotSupportedEx
pecified method is not supported.
at System.Management.Automation.ParameterB
CoerceTypeAsNeeded(CommandParameterInternal a
tring parameterName, Type toType, ParameterCo
peInformation collectionTypeInfo, Object curr
--- End of inner exception stack trace ---
at System.Management.Automation.ParameterB
CoerceTypeAsNeeded(CommandParameterInternal a
tring parameterName, Type toType, ParameterCo
peInformation collectionTypeInfo, Object curr
at System.Management.Automation.ParameterB
BindParameter(CommandParameterInternal parame
ledCommandParameter parameterMetadata, Parame
Flags flags)
at System.Management.Automation.CmdletPara
rController.BindParameter(CommandParameterInt
ment, MergedCompiledCommandParameter paramete
erBindingFlags flags)
at System.Management.Automation.CmdletPara
rController.BindParameter(UInt32 parameterSet
ParameterInternal argument, MergedCompiledCom
ter parameter, ParameterBindingFlags flags)
at System.Management.Automation.CmdletPara
rController.BindParameters(UInt32 parameterSe
tion1 arguments, CommandMetadata commandMeta
at System.Management.Automation.CmdletPara
rController.BindCommandLineParametersNoValida
ction
1 arguments)
at System.Management.Automation.CmdletPara
rController.BindCommandLineParameters(Collect
ments)
at System.Management.Automation.CommandPro
dCommandLineParameters(CommandParameterIntern
eters)
at System.Management.Automation.CommandPro
pare(CommandParameterInternal[] parameters)
at System.Management.Automation.CommandPro
.DoPrepare(CommandParameterInternal[] paramet
at System.Management.Automation.Internal.P
cessor.Start(Boolean incomingStream)
at System.Management.Automation.Internal.P
cessor.SynchronousExecuteEnumerate(Object inp
ble errorResults, Boolean enumerate)

InvalidArgument: (:) [ForEach-Object], Parame
Exception
CannotConvertArgument,Microsoft.PowerShell.Co
EachObjectCommand

System.Management.Automation.InvocationInfo
{1, 1}
May 15, 2013 at 9:50 AM
Still getting this error when creating new component "IndexPartitionPipeBind' required by parameter 'IndexPartition'. Specified method
is not supported."

Partitioned="false"
Partitions="1"
<Proxy Name="Search Service Application" Partitioned="false">